Ale*_*der 9 nsoperationqueue ios
cancelAllOperations()不适用于mainQueue(该cancel()方法未在该NSOperation对象上调用).我错过了什么吗?我必须遍历所有操作并调用cancel()方法才能使其工作.
我还可以确认cancelAllOperations在[NSOperationQueue mainQueue]上不起作用(至少在我的iOS 5.0模拟器上).可能是故意设计的,因为它是一个共享实例.
我的简单解决方法是在不覆盖任何内容的情况下继承NSOperation或NSBlockOperation,然后执行以下操作:
-(void)cancelMyOperationsInMainQueue {
for (NSOperation* o in [[NSOperationQueue mainQueue] operations]) {
if ([o isKindOfClass:[MyOperation class]]) {
[o cancel];
}
}
}
Run Code Online (Sandbox Code Playgroud)