2015-05-27 2 views
1

Im используя NSURLSessiondataTask с NSOoperationQueue, чтобы загрузить файл с несколькими соединениями для более быстрой скорости. Создание операций с NSURLSession и передача их OperationQueue. Теперь моя борьба здесь, как я вижу в яблочных документах, только downloadTask отслеживает прогресс, можно ли даже отслеживать полученные байты с помощью NSURLSessiondataTask?NSURLSession dataTaskWithRequest отслеживание хода

ответ

2

Настройте свой NSURLSession, чтобы иметь делегат, который реализует протокол NSURLSessionDataDelegate.

В делегате реализуется метод URLSession(_:dataTask:didReceiveData:), который будет вызываться при вводе данных. Это хорошее место для обновления, например, индикатор выполнения.

+0

Спасибо @StefanArentz, не могли бы вы объяснить более подробно n Как мне создать делегат? Я знаю, как настроить NSURLSession для использования делегата, но я не уверен, как создать сам делегат. спасибо – user2125726

2

в компании Apple документации https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSessionTaskDelegate_protocol/index.html#//apple_ref/occ/intfm/NSURLSessionTaskDelegate/URLSession:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend: делегат

- (void)URLSession:(NSURLSession *)session 
      task:(NSURLSessionTask *)task 
didSendBodyData:(int64_t)bytesSent 
totalBytesSent:(int64_t)totalBytesSent 
totalBytesExpectedToSend:(int64_t)totalBytesExpectedToSend 

URLSession (_: dataTask: didReceiveData :) не вызываются, по крайней мере не на КСНЕ 9.0, в противном случае применяется ответ Стефана

+0

Спасибо! Мне очень помогли. –

Смежные вопросы