Pie*_*ero 1 iphone nsoperation nsoperationqueue nsmanagedobject ios
我已经从网址下载了信息,我将这个网址作为NSOperation在NSOperationQueue中发送,我想知道,如何删除特定的NSOperation以下载特定网址的数据,现在我这样做:
AppDelegate *appController = (AppDelegate *) [[UIApplication sharedApplication] delegate];
for (NSOperation *op in appController.seriesQueue.operations) {
if ([op isKindOfClass:[MyDowndload class]]) {
MyDownload *urlInDownload = (MyDowndload *)op;
if ([urlInDownload.myNew.urlName isEqualToString:[managedObject valueForKey:@"urlName"]] && [urlInDownload.myNew.language isEqualToString:[managedObject valueForKey:@"language"]]) {
[op cancel];
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在tableview中有信息,所以当我为索引路径删除一行时,我输入此检查,并在[op cancel]行中输入,但我可以在控制台日志中看到该线程仍在下载,如何我能停下来删除吗?
根据苹果指南,取消手术不会立即迫使它停止它正在做的事情.虽然期望所有操作都遵循isCancelled返回的值,但是您的代码必须显式检查此方法返回的值并根据需要中止.
作为Justin建议的示例....这是根据需要中止执行方法的方法.
- (void)main
{ \\ ...do work...
if (self.isCancelled)
{ \\ ...get out... }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7715 次 |
| 最近记录: |