我一直在搜索,但只能找到委托模式的想法来传递来自NSOperation的数据。我有一个NSOperation,在完成NSOperation后下载数据我希望它能够传递给将它下载的数据放入NSoperationQueue的类。在我的队列中最多可以有100个这样的NSOPerations,它们都检索唯一的数据。任何想法都将不胜感激。
答案 0 :(得分:5)
另一个想法是使用块。您可以使用块
初始化NSOperation对象typedef void(^CompletionBlock)(NSData *data);
- (id) initWithCompletionBlock: (CompletionBlock) block;
并在操作完成后调用它并下载数据。
dispatch_async(dispatch_get_main_queue(), ^{
if(block){
block(fetchedData);
}
});
答案 1 :(得分:2)
每次操作完成后,您都可以使用观察者模式来侦听和发布包含必要数据的通知。您可以使用NSNotificationCenter
来处理此问题。您可以在文档的Notification Programming Topics部分找到更多详细信息。无论您使用哪种方法,请务必考虑您所在的线程。