Пытаюсь скачать 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
.
Когда я вызываю метод, через несколько секунд отладчик переходит к завершениюHandler с данными nil
и ошибкой nil
. Что я делаю не так?
Я также пробовал:
- вызов без завершенияHandler, затем отладчик переходит к обратному вызову
didReceiveResponse
с ответом 200 и все. - используя
[NSOperationQueue new]
для очереди - используя
[NSURLSession sharedSession]
- не получил никакого ответа - используя
[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier: @"..."]
- валится мол что не могу использовать обработчик завершения, а без него - тоже никакого ответа.
didReceiveData
принадлежит делегату.dataTaskWithRequest:completionHandler:
принадлежит обработчику завершения - person vadian   schedule 27.06.2018- (void)URLSession:(NSURLSession *) session dataTask:(NSURLSessionDataTask *) dataTask didReceiveData:(NSData *)data
- person annaoomph   schedule 27.06.2018didFailWithError
, чтобы получить возможную ошибку. - person vadian   schedule 27.06.2018lost connection to background trasnfer service
, так что это уже что-то... - person annaoomph   schedule 27.06.2018main
нарушает (фоновую) функциональность. ПопробуйтеNSOperationQueue.currentQueue
- person vadian   schedule 27.06.2018