我正在使用NSURLSession
dataTask
与NSOoperationQueue
一起下载具有多个连接的文件,以加快速度。从NSURLSession
创建操作并将其传递给OperationQueue
。现在我在这里的斗争是,正如我在Apple文档中看到的,只有downloadTask
有进度跟踪,是否可以使用NSURLSession
dataTask
跟踪收到的字节数?
答案 0 :(得分:3)
- (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的答案适用
答案 1 :(得分:2)
将NSURLSession
配置为拥有实现NSURLSessionDataDelegate
协议的委托。
在委托中,实现URLSession(_:dataTask:didReceiveData:)
方法,当数据进入时将调用。这是一个更新的好地方,例如进度条。
答案 2 :(得分:0)
以下是一个示例(Swift4)如何跟踪多个同时执行的下载操作的进度:https://stackoverflow.com/a/45290601/1418981