我正在使用 NSURLCONnections 下载一些图像(大约 200-300 个拇指图像)。我有这些图像的 url 数组。连接开始下载这些图像。但在某些情况下,我想取消所有这些下载。怎么可能。我可以取消所有这些 NSURLConnections。
问问题
1157 次
3 回答
4
创建 NSOperationQueue 并通过此队列使用 NSURLConnection 会更好。
例如:
NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(sendRequest)];
- (void) sendRequest {
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSURLConnection *theConnection = [[[NSURLConnection alloc] initWithRequest:theRequest delegate:self] autorelease];
...
}
NSOperationQueue 有方法cancelAllOperations
于 2013-02-22T07:21:30.130 回答
2
[connection cancel]
用于取消一个 NSURLConnection。
于 2013-02-22T07:11:53.363 回答
0
我会NSURLConnection
结合使用同步NSOperationQueue
来下载数据:
[queue addOperationWithBlock:^{
NSData *data = [NSURLConnection
sendSynchronousRequest:…
returningResponse:… error:…];
}];
这样,您可以轻松控制并发下载的数量并使用[queue cancelAllOperations]
. 请注意,取消队列不会停止已经开始的下载,但如果您只下载小缩略图并且有相当大的并发下载限制,那将不是问题。
同步NSURLConnection
模式的优点是比异步委托 API 更易于使用。
于 2013-02-22T07:52:36.897 回答