画像を表示中にエラーが発生しました -- iphone フィールド と objective-c フィールド と cocoa-touch フィールド 関連 問題

Error while displaying an Image












0
vote

問題

日本語

次のエラーを得てください、そして私はそれを回避するには手がかりがない、誰かが私を助けてくれることができます

bool _webtrythreadlock(bool)、0x1ea990:メインスレッドまたはWebスレッド以外のスレッドからWebロックを取得しようとしました。これは、二次スレッドからUIKitを呼び出すことの結果である可能性があります。今すぐクラッシュする...

<事前> <コード> for (let room in this.rooms){ for(let [key, value] of Object.entries(this.rooms[room].checks){ if(value.price =< '70'){ value.has = true } else { value.has = false } } } 0
英語

I get the following error, and i have no clue how to avoid it, can someone please help me

bool _WebTryThreadLock(bool), 0x1ea990: Tried to obtain the web lock from a thread other than the main thread or the web thread. This may be a result of calling to UIKit from a secondary thread. Crashing now...

 - (void)loadImg {         NSData* image = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://images.sugarscape.com/userfiles/image/DECEMBER2010/Lozza/HarryStyles2.jpg"]];         UIImage* img = [[UIImage alloc] initWithData:image] ;         [self performSelectorInBackground:@selector(showImg:) withObject:img];     } 
</div
        

回答リスト

3
 
vote
vote
ベストアンサー
 

メインスレッド以外のスレッドからUIKitメソッドを呼び出さないでください。 performSelectorInBackground:withObject: は、二次スレッドで<コード> showImg: を実行し、そこでUIKITメソッドを呼び出すと、問題がある可能性があります。

実際には英語で説明されています:

これは、二次スレッドからUIKITを呼び出す結果である可能性があります

 

Don't call any UIKit methods from threads other than the main thread. performSelectorInBackground:withObject: executes showImg: on a secondary thread, and if you call any UIKit methods there, that might be the problem.

It is actually explained in plain English:

This may be a result of calling to UIKit from a secondary thread

</div
 
 
     
     
0
 
vote

バックグラウンドスレッドからUIを更新するのは安全ではないが、ここでやっていると仮定している

<事前> <コード> [self performSelectorInBackground:@selector(showImg:) withObject:img];

あなたがしたい間違った方法でそれを持っているかもしれないと思います:

  1. バックグラウンドスレッド上の画像を取得する
  2. メインスレッド
  3. のこのイメージでUIを更新する
 

It is not safe to update UI from a background thread, which I am assuming you are doing here

[self performSelectorInBackground:@selector(showImg:) withObject:img]; 

I think you may have got it the wrong way round you want to:

  1. Retrieve the image on a background thread
  2. Update the UI with this image on the main thread
</div
 
 
 
 
0
 
vote
スレッドプログラミンガイド:スレッドの安全概要、メインスレッドでのUIViewの操作を呼び出す必要があります。 [Self PerformSelceRonmainthread:@ selector(showimg :)を試してみてください.IMG WaitIntildOne:Yes]。
 

According to Threading Programmin Guide: Thread Safety Summary, you should invoke UIView's operations on main thread. Try [self performSelectorOnMainThread:@selector(showImg:) withObject:img waitUntilDone:YES].

</div
 
 
   
   

関連する質問

0  UinavigationControllerを使用してビュー間でデータを渡すにはどうすればよいですか  ( How do you pass data between views using a uinavigationcontroller ) 
次の例で概説されているように明らかな方法を使ってみましたが、私の渡された変数( rootcategory )は、ロードされたビューのViewDidLoadでは nil です。これは私のコードです: <事前> <コード> CategoryViewControll...

10  SetNeedsDisplayは必ずしもDRAGRRECTを呼び出すわけではありません  ( Setneedsdisplay doesnt always call drawrect ) 
カスタムテーブルセルにカスタムビューがあります。カスタムビューの特定のプロパティが変更されるたびに、 - (void)drawRect:(CGRect)rect のビューを再描画する [self setNeedsDisplay] を呼び出します。そのプロパティ...

9  iPhoneで最高のSQLiteの実践[閉じた]  ( Best sqlite practices on the iphone ) 
現在立つにつれて、この質問は私たちのQ&AMPにとって良いフィットではありません。フォーマット。私たちは事実、参考文献、または専門知識によって支持されることを期待していますが、この質問は...

1  NSNUMBERFORMATTERは科学的スタイルで桁情報を尊重していません  ( Nsnumberformatter not honoring digit information in scientific style ) 
科学的なスタイルにいくつかの小数を展示しようとしています。 NSDecimalNumberとNSNumberFormatterオブジェクトを使用しています。桁数が最小と最大数を設定するときは、元の数からの情報が失われたようです。たとえば、次のコード例を検討して...

75  iPhone「ロックを解除する」アニメーション  ( Iphone slide to unlock animation ) 
アップルアップルが「ロック解除する」(「スライド」を「スライドオフ」の「スライド」が別の同一の例である)アニメーションをどのように実装したかについてのアイデアは何ですか。 私はある種のアニメーションマスクについて考えた - しかし、パフォーマンス上の理由から、...

2  UibitalViewCellのチェックマークに関する問題  ( Problems with a checkmark in a uitableviewcell ) 
私は以下のコードを実行しました。 <事前> <コード> UITableViewCell *cell = [tableView1 cellForRowAtIndexPath:indexPath]; UITableViewCell *cell2 = [tableV...

79  アプリのアイコンの強調表示を無効にする方法  ( How to disable highlighting of the app icon ) 
iPhoneのホームページに表示されている間に、私のアイコンに表示される強調表示を無効にするにはどうすればよいですか? ありがとう。 ...

3  UinavigationController PopViewControllerはすべてをポップ化しています!  ( Uinavigationcontroller popviewcontroller is popping everything ) 
だからエラーが発生したときにビューコントローラをスタックからポップしようとしていますが、1つのGOであまり離れすぎるようです。上のナビゲーションバーはタイトルとボタンを失いますが、古いテーブルビューデータは表示されたままです。何が起こっているのかわかりません....

7  グループ化されたUITableViewCellのコントロールを並べ替えるのに白い線を取り除く  ( Remove white line next to reorder control on grouped uitableviewcell ) 
私は、より暗いUIとカスタムAccessoryViewを持つテーブルのためのカスタムUIを構築しました。テーブルを編集モードに入れると、除去されていないように見えないように見えるコントロールの左側に白い線があります。 TableView:abseoRyt...

21  アプリケーションアイコンの「白い反射」を取り外すには? [複製]  ( How to remove the white reflection on the application icon ) 
この質問はすでにここで回答を持っています 閉じられた 8年前> 可能な重複: アプリアイコンの強調表示を無効にする方法? こんにちはこれはiPhoneの目的のcの質問です。 アプリのアイコンファイルを設定するときは、icon.p...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有