我面临与 NSoperationQueue 相关的问题。在我的代码中:
-(void) viewDidLoad
{
//Initialisation of queue and operation.
//adding operation to queue
[self.operationQueue addOperation:op];
}
-(void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.operationQueue cancelAllOperations];
}
因此,在执行我的 NSOperation 主函数期间,当我检查 isCancelled 属性时,它总是返回 NO。事实上,在 NSOperationQueue 上调用 cancelAllOperation 之后。例如。
-(void)main
{
if(self.isCancelled)
{
// Never executing this block :-(
}
}
有关更多详细信息,我正在我的 NSOperation 中进行一些网络调用。当我切换到其他视图时,会调用 cancelAllOperation。当网络响应在我的 NSOperation 中返回时,我正在检查 if(Self.isCancelled),现在我在另一个视图中(意味着 isCancelled 应该设置为 YES)。但这个检查总是失败。