0

私はいくつかの処理を行っているカスタム キューを作成し、それによって UITableView がそれ自体をリロードするために使用するいくつかのオブジェクトの配列を作成しました。カスタム キューがアプリのどこかで呼び出され、処理後にメイン UI キューにテーブル ビューをリロードしています。ここまでは順調ですが、テーブル ビューのリロード中にカスタム キューが再度呼び出され、配列が変更されます。したがって、予想される cellforrowatindexpath メソッドで範囲外の例外が発生します。GCD でこの種の同時発生の問題を解決するにはどうすればよいですか。これらのタイプのシーンで使用するための正確な手順は何ですか.

4

1 に答える 1

0

メインキューにテーブルのリロードを追加する代わりに、試してください

[self performSelectorOnMainThread:@selector(doSomething:) withObject:object waitUntilDone:YES]

これにより、メイン スレッドでテーブルがリロードされますが、完了するまでカスタム キューが一時停止されるため、発生しているエラーを防ぐことができます。

于 2012-05-09T16:46:51.720 に答える