在使用Alamofire下载内容时,只会调用一次urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite :)一次。

时间:2019-05-20 12:37:17

标签: ios swift alamofire

我使用alamofire实现下载功能。下载进度始终为0,下载完成后变为1。因此,调试代码后,我发现SessionDelegate(后跟URLSessionDownloadDelegate)的函数urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)仅在下载完成时被调用一次。我不是为什么,任何人都可以告诉我吗?

我在iphoneXr(iOS 12.2),iphoneXs(iOS 12.2),模拟器iphone7(iOS 12.1)中尝试过,所有这些设备都有这种现象。模拟器iphoneX(iOS 12.2)正常,它以正确的方式调用了该函数。

1 个答案:

答案 0 :(得分:0)

除非服务器以Content-Length标头作为响应,否则URLSession(因此Alamofire)无法计算下载进度,因此仅在完成时进行更新。另外,如果下载量很小且下载速度非常快,则可能看不到任何进度更新。