我使用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)正常,它以正确的方式调用了该函数。
答案 0 :(得分:0)
除非服务器以Content-Length
标头作为响应,否则URLSession
(因此Alamofire)无法计算下载进度,因此仅在完成时进行更新。另外,如果下载量很小且下载速度非常快,则可能看不到任何进度更新。