我在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/

10-11 09:01