1

5 つの NSBlockOperation がそれぞれオブジェクトの NSArray を生成し、それを UITableView データソースとして機能する共有同期 NSMutableArray に追加する iOS アプリがあります。

操作は互いに独立しており、完了したらすぐに UITableView データの再読み込みを開始する必要があります。

残念ながら、NSOperation でこれを行う方法が見つかりませんでした。別のマルチスレッド設計を使用する必要がありますか?

4

1 に答える 1

2

データの再読み込み呼び出しを、依存関係として他の 5 つのオペレーションを持つさらに別の NSOperation に追加します (「参考文献」を参照addDependency:)。その後、他のものが完了するまで実行されません。

メイン スレッドへの GCD ディスパッチで UI 呼び出しを必ずラップしてください。

NSOperation リファレンスから:

依存関係は、特定の順序で操作を実行するための便利な方法です。addDependency: および removeDependency: メソッドを使用して、操作の依存関係を追加および削除できます。デフォルトでは、依存関係のある操作オブジェクトは、依存するすべての操作オブジェクトの実行が完了するまで、準備ができているとは見なされません。ただし、最後の依存操作が完了すると、操作オブジェクトは準備が整い、実行できるようになります。

于 2012-10-03T19:16:32.173 に答える