我在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]
时,只需将布尔值isCancelled
设置为YES,但不会停止队列的执行!请帮我!
最佳答案
取消操作实际上并不会停止任何正在执行的操作。
它只是阻止新的启动。
您必须在操作本身中手动停止任何当前操作。
例如,如果您有收集下载数据的代码,则在连接数据之前,请检查操作是否已取消。
如果操作被取消,则结束操作。
有很多方法可以做到这一点。这取决于您的手术内部。
关于ios - 调用[operation cancelAllOperations]时,NSOperationQueue不会停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23930634/