当我想要停止使用AFNetworking构建的同步引擎中的所有当前请求时,我真的遇到了一个问题。
我有5个不同的网址查询。如果前一个查询执行正确,则会启动每个查询。
这个很好用。
我想随时停止同步过程。所以我的代码是:
- (void)cancelAllRequests
{
NSLog(@"CancelAllRequests");
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:@"ws/webapp/services/pull"];
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:@"ws/webapp/services/pull_items"];
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"GET" path:@"ws/webapp/services/pull_image"];
[[HTTPClient sharedClient] cancelAllHTTPOperationsWithMethod:@"POST" path:@"ws/webapp/services/push_item"];
[[[HTTPClient sharedClient] operationQueue] cancelAllOperations];
}但是这段代码似乎什么也做不了。当我想取消时,在方法被调用后,我看到所有批处理操作都在我的日志中工作。
我错过了什么?如果我取消请求,这不会停止所有使用此请求构建的活动操作?
发布于 2012-03-07 06:09:42
您应该只需要执行[[[HTTPClient sharedClient] operationQueue] cancelAllOperations]。当操作被取消时,它们试图尽可能地完成执行,但不能保证这到底是如何发生的。对于批处理操作,当它被取消时,它可能已经完成了,因为它的所有依赖项请求操作都已经完成(通过被取消)。
https://stackoverflow.com/questions/9583743
复制相似问题