- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的代码:
NSOperationQueue *queue;
-(void)viewDidLoad
{
queue = [NSOperationQueue new];
NSOperation* loadImgOp = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(refresh) object:nil];
[queue addOperation:loadImgOp];
}
-(void)refresh
{
[self operationFirst];
[self operationSecond];
...
[self operationFive];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[queue cancelAllOperations];
}
当我调用新的 ViewController 时,-(void)refresh 继续工作。 cancelAllOperations 无效。
最佳答案
您不能在当前配置中。您应该添加一个 cancelled
属性并在整个方法中检查它。
在队列上调用取消会将操作标记为已取消并阻止新操作运行,但不会终止正在运行的操作。由每个操作来管理它的取消。在 then 是一个调用时,它不能做任何事情,因为它已经调用了目标方法。
关于ios - NSOperationQueue cancelAllOperations 在 viewWillDisappear 时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28178342/
如何取消 NSOperationQueue 中的所有操作?我使用了cancelAllOperations方法,但它不起作用,NSOperationQueue仍在调用服务器上传照片。 我用循环将每个连接
我正在努力应对以下情况,请耐心等待,因为我已尽力尽可能清楚地解释这一点: 我有一个类 CoummintyOperation,它是 GroupOperation 的子类。 CommuityOperati
cancelAllOperations() 对 mainQueue 不起作用(cancel() 方法未在 NSOperation 对象上调用)。我错过了什么吗?我必须遍历所有操作并调用 cancel(
我的代码: NSOperationQueue *queue; -(void)viewDidLoad { queue = [NSOperationQueue new]; NSOperat
我在我的 iOS 应用程序中创建了这个队列,我想停止它: 在我的 .h 文件中: NSOperationQueue *uhm; 在我的 .m 文件中: 在 viewDidLoad:NSOperatio
我面临与 NSoperationQueue 相关的问题。在我的代码中: -(void) viewDidLoad { //Initialisation of queue and operatio
我是一名优秀的程序员,十分优秀!