Using 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 に答える