【问题标题】:`urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)` is called only once when downloading something use Alamofire`urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)` 在下载内容时只调用一次使用 Alamofire
【发布时间】:2019-05-20 12:37:16
【问题描述】:

我使用alamofire实现下载功能。下载进度总是0,下载完成后变成1。所以我调试代码,我发现SessionDelegate(跟随UR​​LSessionDownloadDelegate)的函数urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:)只在下载完成时调用了一次。不知道为什么,谁能告诉我?

我在iphoneXr(iOS 12.2)、iphoneXs(iOS 12.2)、模拟器iphone7(iOS 12.1)中试过,这些设备都有这个现象。模拟器iphoneX(iOS 12.2)正常,调用函数正确。

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-25
      相关资源
      最近更新 更多