NSOperation传回数据

时间:2013-05-15 13:00:23

标签: ios nsoperation nsoperationqueue

我一直在搜索,但只能找到委托模式的想法来传递来自NSOperation的数据。我有一个NSOperation,在完成NSOperation后下载数据我希望它能够传递给将它下载的数据放入NSoperationQueue的类。在我的队列中最多可以有100个这样的NSOPerations,它们都检索唯一的数据。任何想法都将不胜感激。

2 个答案:

答案 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部分找到更多详细信息。无论您使用哪种方法,请务必考虑您所在的线程。