cancelAllOperations()
无法在mainQueue上运行(cancel()
对象上未调用NSOperation
方法。我错过了什么吗?
我必须遍历所有操作并调用cancel()
方法才能使其正常工作。
答案 0 :(得分:5)
我还可以确认cancelAllOperations对[NSOperationQueue mainQueue]不起作用(至少在我的iOS 5.0模拟器上)。可能是故意设计的,因为它是一个共享实例。
我的简单解决方法是在不覆盖任何内容的情况下继承NSOperation或NSBlockOperation,然后执行以下操作:
-(void)cancelMyOperationsInMainQueue {
for (NSOperation* o in [[NSOperationQueue mainQueue] operations]) {
if ([o isKindOfClass:[MyOperation class]]) {
[o cancel];
}
}
}
答案 1 :(得分:0)
是的还可以确认它没有在操作上调用取消方法,它只是设置isCancelled = YES
我的解决方案:[[[NSOperationQueue mainQueue] operations] makeObjectsPerformSelector:@selector(cancel)];