Подтвердить что ты не робот

Отмена NSURLConnection начинается с sendAsynchronousRequest: queue: completeHandler:?

  • Можно ли отменить NSURLConnection с sendAsynchronousRequest:queue:completionHandler:?

  • Почему sendAsynchronousRequest:queue:completionHandler: не возвращает объект NSURLConnection, который он создает, чтобы я мог его отменить?

4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ. Поскольку мой предоставленный ответ кажется неправильным, вы должны проверить следующий связанный вопрос и его ответы:

Как отменить асинхронный вызов через 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];