kid*_*d49 7 multithreading objective-c nsoperation nsoperationqueue ios
我面临与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];
}
Run Code Online (Sandbox Code Playgroud)
所以在执行我的NSOperation主函数时,当我检查isCancelled属性时,它总是返回NO.在NSOperationQueue上调用cancellAllOperation之后的事实.例如.
-(void)main
{
if(self.isCancelled)
{
// Never executing this block :-(
}
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多详细信息,我在做我的NSOperation.And一些网络电话,当我切换到另一种观点届时cancelAllOperation的叫了起来.当网络响应回到我的NSOperation时,我正在检查是否(Self.isCancelled),现在我在另一个视图中(意味着isCancelled应该设置为YES).但这个检查总是失败.
小智 1
您的操作在加载视图后立即添加到队列中viewDidLoad,然后队列将负责启动该操作。
由于您在视图消失 ( viewWillDisappear) 时取消了操作,因此操作很可能会在此时完成。也就是说,你的操作被终止后就被取消了。您可以检查该isExecuting属性以了解该操作是否正在运行。
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |