繁体   English   中英

从 URLSession.shared.dataTask 获取当前进度

[英]Get Current Progress from URLSession.shared.dataTask

我需要获取 GET 请求的数据任务的当前进度(已接收和总字节数),以便从此数据制作进度加载指示器。

添加URLSessionDownloadDelegate ,使用委托创建一个URLSession

URLSession(configuration: configuration, delegate: self, delegateQueue: nil)

func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {

    _progress = Float(totalBytesWritten) / Float(totalBytesExpectedToWrite)
}

会话任务分为三种类型。 这是从 Apple 的网站链接复制的。

  1. 数据任务使用 NSData 对象发送和接收数据。 数据任务用于对服务器进行简短的、通常是交互式的请求。
  2. 上传任务类似于数据任务,但它们也发送数据(通常以文件的形式),并支持在应用程序未运行时后台上传。
  3. 下载任务以文件的形式检索数据,并在应用程序未运行时支持后台下载和上传。

您应该使用下载任务而不是数据任务,因为它的委托方法将允许您跟踪下载进度。 是调用您所要求的下载委托方法的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM