Iphone 视图更改时从队列中删除NSO操作

Iphone 视图更改时从队列中删除NSO操作,iphone,nsoperation,Iphone,Nsoperation,我正在创建一个涉及如此多web服务调用的应用程序。我正在使用NSOperation执行web服务调用。应用程序中有几个视图,每次加载视图时,我都会调用web服务。 由于它是导航,如果用户甚至在操作完成之前就决定返回到上一个视图,则另一个操作将进入队列并等待上一个操作完成。当上一个操作的视图发生变化时,是否有任何方法阻止其执行?请帮助您是否在视图控制器中尝试过类似的操作: - (void)viewWillDisappear:(BOOL)animated { [myOperation can

我正在创建一个涉及如此多web服务调用的应用程序。我正在使用NSOperation执行web服务调用。应用程序中有几个视图,每次加载视图时,我都会调用web服务。
由于它是导航,如果用户甚至在操作完成之前就决定返回到上一个视图,则另一个操作将进入队列并等待上一个操作完成。当上一个操作的视图发生变化时,是否有任何方法阻止其执行?请帮助

您是否在视图控制器中尝试过类似的操作:

- (void)viewWillDisappear:(BOOL)animated {
    [myOperation cancel];
    ...
}

您是否在视图控制器中尝试过类似的操作:

- (void)viewWillDisappear:(BOOL)animated {
    [myOperation cancel];
    ...
}

但我需要删除队列中的所有操作。我尝试了[opQueue CancelAllOperations];但仍然崩溃。我认为当前正在执行的操作没有被取消。因此,我尝试等待所有操作,但这太费时了。@Nithin:如果操作检查isCancelled keypath并根据该结果停止正在执行的操作,则取消操作只会停止其功能。听起来您的操作没有对此做出响应,因此-waituntlalloperationsarefiefined正在阻塞,直到它们完全执行为止。您还可以了解ASIHTTPRequest是如何处理的:但我需要删除队列中的所有操作。我尝试了[opQueue CancelAllOperations];但仍然崩溃。我认为当前正在执行的操作没有被取消。因此,我尝试等待所有操作,但这太费时了。@Nithin:如果操作检查isCancelled keypath并根据该结果停止正在执行的操作,则取消操作只会停止其功能。听起来您的操作没有对此做出响应,因此-waituntlalloperationsarefiefined正在阻塞,直到它们完全执行为止。您还可以了解ASIHTTPRequest如何处理此问题: