2015-05-27 136 views
1

Im使用NSURLSessiondataTaskNSOoperationQueue下載具有多個連接的文件以獲得更快的速度。從NSURLSession創建操作並將它們傳遞給OperationQueue。現在我在這裏掙扎的是,正如我在蘋果文檔中看到的,只有downloadTask有進度跟蹤,是否有可能使用NSURLSessiondataTask跟蹤收到的字節?NSURLSession dataTaskWithRequest進度跟蹤

回答

2

配置您的NSURLSession以擁有一個實現NSURLSessionDataDelegate協議的委託。

在委託中,實現URLSession(_:dataTask:didReceiveData:)方法,當數據進入時將調用該方法。哪一個是更新進度條的好地方。

+0

謝謝@StefanArentz,能否請您詳細解釋o ñ我如何創建代表?我知道如何配置NSURLSession使用委託,但我不知道如何創建委託本身。謝謝 – user2125726

2

每蘋果文檔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 :)不會被調用, 至少不會在iOS 9.0, 否則Stefan的回答適用

+0

謝謝!幫了我很多。 –