将NSOperationQueue与ARC一起使用时,将消息发送到解除分配的实例

时间:2013-09-27 13:48:23

标签: ios objective-c automatic-ref-counting nsoperation nsoperationqueue

我正在使用NSOperationQueue和NSOperation进行异步下载操作。当应用加载时,该过程在app delegate中启动。 这是代码

for(Campaign *cmp in campaigns)
{
  DownloadOperation *operation = [[DownloadOperation alloc] initWithCamapign:cmp];
  [self.downloadQueue addOperation:operation];
}

运行一段时间后,应用程序崩溃发送消息

  

[Downloadoperation retain]:发送到解除分配的实例的消息

下载操作扩展了NSOperation

  

DownloadOperation:NSOperation

下载队列在appdelagate中声明如下

NSOperationQueue *downloadQueue;
@property(nonatomic,strong) NSOperationQueue *downloadQueue;

我正在使用ARC。如何告诉编译器不应该释放该对象?

  

添加:我已经调试了应用程序一段时间了。我想分享我发现的东西。 DownloadOperation类正在实现一个   delagate。委托基本上接收HTTP的结果   操作。处理该类的类生成异常   HTTP请求尝试将响应发布回DownloadOperation   类。那时它打电话

[self.delegate didLoadPage:pageNumber withResults:results]
  

我认为发布了DownloadOperation类的委托吗?

0 个答案:

没有答案