Вы не можете отменить его.
Если вы хотите иметь возможность отменить загрузку на полпути, используйте NSURLConnection
, работая в асинхронном режиме.Это немного больше работы для настройки, но вы можете отменить в любой момент процесса загрузки.
В качестве альтернативы, вы можете использовать этот удобный класс Я написал, что оборачивает асинхронный NSURLConnection
его делегат в одном вызове метода; -)
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[[RequestQueue mainQueue] addRequest:request completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (data && error == nil)
{
//do something with your downloaded data
}
}];
//to cancel the download at any time, just say
[[RequestQueue mainQueue] cancelRequest:request];
Easy!
</shamelessSelfPromotion>
Обратите внимание, что запрос выше уже асинхронный, и класс уже управляеторганизация нескольких запросов, поэтому вам не нужно (и не нужно) оборачивать их в NSOperationQueue
.