-
Можно ли отменить
NSURLConnection
сsendAsynchronousRequest:queue:completionHandler:
? -
Почему
sendAsynchronousRequest:queue:completionHandler:
не возвращает объектNSURLConnection
, который он создает, чтобы я мог его отменить?
Отмена NSURLConnection начинается с sendAsynchronousRequest: queue: completeHandler:?
Ответ 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];