我有一个在NSOperationQueue中运行的NSOperation。NSOperation下载一些数据并将其解析成NSDictionary。如何知道NSOperation何时完成并获取该字典?谢谢。
发布于 2011-07-22 19:03:44
您也可以使用NSOperation的- (void)setCompletionBlock:
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
NSLog(@"Doing something...");
}];
[operation setCompletionBlock:^{
NSLog(@"Doing something once the operation has finished...");
}];
[queue addOperation:operation];更详细的here。
发布于 2015-10-09 10:24:51
如果需要知道操作何时完成的代码块本身就是一个NSOperation,那么您可以通过在它们之间建立依赖关系来优雅地处理它:
[laterOp addDependency:downloadAndParseOp];只有在downloadAndPareOp完成之后,才会执行laterOp。
事实上,我鼓励你写你的代码,以便这种方法是可能的。NSOperations和NSOperationQueue的最大优势之一是它可以轻松地协调代码执行。
发布于 2011-07-22 19:01:31
通常的做法是让NSOperation在任何需要知道操作已完成的对象上调用方法。或者,您可以使用NSNotificationCenter来允许各种对象以更分散的方式侦听更新。或者,您可以使用KVO来侦听NSOperation的isFinished属性。
https://stackoverflow.com/questions/6788948
复制相似问题