我在NSOperationQueue中运行了NSOperation。 NSOperation下载一些数据并将其解析为NSDictionary。我如何知道NSOperation何时完成并获得该字典? 感谢。
答案 0 :(得分:5)
答案 1 :(得分:1)
如果需要知道操作何时完成的代码块本身就是一个NSOperation,那么你可以通过在它们之间建立依赖关系来优雅地处理它:
[laterOp addDependency:downloadAndParseOp];
只有在downloadAndPareOp完成后才会执行laterOp。
事实上,我鼓励您编写代码,以便采用这种方法。 NSOperations和NSOperationQueue的最大优势之一是它可以轻松协调代码执行。
答案 2 :(得分:0)
通常要做的是让NSOperation在任何需要知道操作完成的对象上调用方法。或者您可以使用NSNotificationCenter允许各种对象以更分散的方式监听更新。或者您可以使用KVO收听NSOperation的isFinished
属性。
答案 3 :(得分:0)
最好的方法是使用委托初始化您的NSOperation。当NSOperation完成他的工作后,他将使用委托方法之一(通过协议声明)调用委托。