私のアプリケーションでは、操作を実行したいファイルの配列をループすることにより、NSOperationQeueuに並行操作を追加します。キューが空になり、すべての操作が終了したことを知りたいので、(短縮バージョン)を使用します。
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if (object == myLocalModeController.myFileobjectsQueue && [keyPath isEqualToString:@"operations"]) {
if ([myLocalModeController.myFileobjectsQueue.operations count] == 0) {
NSLog(@"Local: Fileobject creation has completed");
}
}
}
私の問題は、操作が非常に軽量で、キューがまだ追加されている間にすぐに終了することがあるということです。これにより、キュー内のアイテム数がゼロであるにもかかわらず、操作が完了していないことが頻繁に発生します。ただし、現在の設定に基づいて、プログラムは'[myLocalModeController.myFileobjectsQueue.operations count]==0'以降に操作が終了したと見なします。キューが実際に終了し、すべての操作が終了したことを確認する方法についての提案はありますか?ありがとう。乾杯、トロンド