我想取消所有请求。以下是我创建异步连接的方法:
[NSURLConnection sendAsynchronousRequest:echo queue:self.queue completionHandler:^(NSURLResponse *respone, NSData *data, NSError *error){
然后我使用这个方法:
-(void)cancelAllRequests
{
NSLog(@"%@",self.queue.operations);
[self.queue cancelAllOperations];
[self.queue waitUntilAllOperationsAreFinished];
}
取消所有请求。
除了将BOOL更改为YES之外,实际上什么都不做。
那么我应该如何取消异步连接呢?
答案 0 :(得分:5)
您无法取消使用sendAsynchronousRequest
计划的连接。您引用的队列仅用于安排完成处理程序。
如果您想完全控制NSURLConnection
,则必须自己实施NSURLConnectionDelegate
。可以在https://gist.github.com/3794804
答案 1 :(得分:1)
您可以做的是将同步请求放入操作(使用块)。
将NSOperationQueue maxNumberOfConcurrentOperations设置为1(因此它们一次运行一个)。
然后,如果你在队列上运行cancelAllOperations,它将停止任何尚未运行的操作。