簡體   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