Is it possible to cancel an NSURLConnection
started with sendAsynchronousRequest:queue:completionHandler:
?
Why doesn't sendAsynchronousRequest:queue:completionHandler:
return the NSURLConnection
object it creates so that I can cancel it?
EDIT - Since my provided answer seems to have been wrong, you should check out the following related question and its answers:
Old answer:
In your header of your class (e.g. ViewController), declare an operation queue:
NSOperationQueue *downloadOperationQueue;
To download a file call something like the following:
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");
}];
To cancel the download later on call:
[downloadOperationQueue cancelAllOperations];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With