12
  1. NSURLConnectionで開始をキャンセルすることはできsendAsynchronousRequest:queue:completionHandler:ますか?

  2. キャンセルできるように、作成しsendAsynchronousRequest:queue:completionHandler:たオブジェクトを返さないのはなぜですか?NSURLConnection

4

1 に答える 1

5

編集 - 提供された回答が間違っているように思われるため、次の関連する質問とその回答を確認する必要があります。

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];
于 2012-09-11T13:54:08.250 に答える