Я пытаюсь скачать zip-архив, используя NSURLSessionDataTask
.
Я знаю, что есть NSURLSessionDownloadTask
, но дело в том, что я хочу didReceiveData
обратный вызов (чтобы показать прогресс).
Код:
NSURLRequest *request = [NSURLRequest requestWithURL:@"..."
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
NSURLSessionConfiguration* config = [NSURLSessionConfiguration defaultSessionConfiguration];
NSOperationQueue *myQueue = [NSOperationQueue new];
myQueue.underlyingQueue = dispatch_get_main_queue();
NSURLSession *session = [NSURLSession sessionWithConfiguration:config
delegate:self
delegateQueue:myQueue];
NSURLSessionDataTask* task = [session dataTaskWithRequest:request
completionHandler:^( NSData *data, NSURLResponse *response, NSError *error){ ... }
[task resume];
Мой класс соответствует NSURLSessionDataDelegate
.
Когда я вызываю метод, через несколько секунд отладчик переходит к завершение работы с данными nil
и ошибкой nil
.
Что я делаю не так?
Я тоже пробовал:
- вызов без завершенияHandler, затем отладчик переходит к
didReceiveResponse
обратному вызову с ответом 200 и все.
- с использованием
[NSOperationQueue new]
для очереди
- с использованием
[NSURLSession sharedSession]
- не получил любой ответ
- с использованием
[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier: @"..."]
- падает, говоря, что я не могу использовать завершениеHandler, но без него - также нет ответа.