【发布时间】:2013-02-22 19:16:16
【问题描述】:
在我的应用程序中,我通过循环遍历我想要对其执行某些操作的文件数组来向我的 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”。有关如何确保队列确实完成并且所有操作都已结束的任何建议?谢谢。干杯,特隆德
【问题讨论】:
标签: objective-c macos cocoa nsoperation nsoperationqueue