我在我的 iOS 应用程序中创建了这个队列,我想停止它:
在我的 .h 文件中:
NSOperationQueue *uhm;
在我的 .m 文件中:
在 viewDidLoad:
NSOperationQueue *uhm = [[NSOperationQueue alloc] init];
在我的方法中:
[uhm addOperation:[NSBlockOperation blockOperationWithBlock: ^{
… //Here I do operations that retrive data from my server
[[NSOperationQueue mainQueue] addOperationWithBlock: ^{
[self.tableView reloadData];
}];
}
}]];
但是当我调用
[uhm cancelAllOperations]
它只是设置 bool 值isCancelled
是,但不会停止队列的执行!请帮我!
最佳答案
取消操作实际上并不会停止任何正在执行的操作。
它只是阻止新的开始。
您必须在操作本身中手动停止任何当前操作。
例如,如果您有收集下载数据的代码,那么在连接数据之前检查操作是否被取消。
如果操作被取消,则结束操作。
有很多方法可以做到这一点。这取决于您的操作内部是什么。
关于ios - 调用 [operation cancelAllOperations] 时 NSOperationQueue 不会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23930634/