-
是否可以取消以
sendAsynchronousRequest:queue:completionHandler:
开头的NSURLConnection
? -
为什么
sendAsynchronousRequest:queue:completionHandler:
不返回它创建的NSURLConnection
对象,以便我可以取消它?
编辑 - 由于我提供的答案似乎是错误的,您应该查看以下相关问题及其答案:
如何通过 NSURLConnection sendAsynchronousRequest 取消异步调用?
旧答案:
在类的标头(例如 ViewController)中,声明一个操作队列:
NSOperationQueue *downloadOperationQueue;
要下载文件,请调用如下所示的内容:
downloadOperationQueue = [[NSOperationQueue alloc] init];
NSURLRequest *fileRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/images/nav_logo114.png"]
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:10];
[NSURLConnection sendAsynchronousRequest:fileRequest
queue:downloadOperationQueue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSLog(@"download successful");
}];
要稍后在电话中取消下载:
[downloadOperationQueue cancelAllOperations];