4

UITableViewのreloadDataメソッドを同時に呼び出すスレッドがたくさんあります。実際に@synchronizedブロックをその周りに配置する必要がありますか?

4

2 に答える 2

5

reloadData、ビューの他のメソッドと同様に、メインスレッドからのみ呼び出す必要があります。@synchronizedしたがって、一度に1つのスレッドのみが存在する必要があるため、必要ありません。

バックグラウンドスレッドを使用していて、テーブルビューをリロードする場合は、を使用dispatch_asyncして、メインスレッドでリロードが発生することを確認します。

dispatch_async(dispatch_get_main_queue(), ^{
    [myTableView reloadData];
});
于 2012-10-08T19:47:38.703 に答える
5

メインスレッド以外のスレッドからreloadDataを呼び出さないでください。

この同様の質問を参照してください:

iOS-別のスレッドがreloadDataをメインスレッドに送信する必要があります

于 2012-10-08T19:47:47.410 に答える