5 つの NSBlockOperation がそれぞれオブジェクトの NSArray を生成し、それを UITableView データソースとして機能する共有同期 NSMutableArray に追加する iOS アプリがあります。
操作は互いに独立しており、完了したらすぐに UITableView データの再読み込みを開始する必要があります。
残念ながら、NSOperation でこれを行う方法が見つかりませんでした。別のマルチスレッド設計を使用する必要がありますか?
5 つの NSBlockOperation がそれぞれオブジェクトの NSArray を生成し、それを UITableView データソースとして機能する共有同期 NSMutableArray に追加する iOS アプリがあります。
操作は互いに独立しており、完了したらすぐに UITableView データの再読み込みを開始する必要があります。
残念ながら、NSOperation でこれを行う方法が見つかりませんでした。別のマルチスレッド設計を使用する必要がありますか?
データの再読み込み呼び出しを、依存関係として他の 5 つのオペレーションを持つさらに別の NSOperation に追加します (「参考文献」を参照addDependency:
)。その後、他のものが完了するまで実行されません。
メイン スレッドへの GCD ディスパッチで UI 呼び出しを必ずラップしてください。
NSOperation リファレンスから:
依存関係は、特定の順序で操作を実行するための便利な方法です。addDependency: および removeDependency: メソッドを使用して、操作の依存関係を追加および削除できます。デフォルトでは、依存関係のある操作オブジェクトは、依存するすべての操作オブジェクトの実行が完了するまで、準備ができているとは見なされません。ただし、最後の依存操作が完了すると、操作オブジェクトは準備が整い、実行できるようになります。