我需要将从远程网址收到的数据缓存到本地网址。我能够成功地完成这项工作:
let dataToCache = try Data(contentsOf: url)
try dataToCache.write(to: cacheURL)
但是我想知道是否有某种类型的观察者可以用来显示数据写入时的进度视图?
答案 0 :(得分:2)
不要使用Data(contentsOf: url)
对非本地资源的网址发出同步请求。您应该使用URLSession
。要观察设置urlsessiondownloaddelegate https://developer.apple.com/documentation/foundation/urlsessiondownloaddelegate所需的进度并监控进度,请使用方法
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64)
https://developer.apple.com/documentation/foundation/urlsessiondownloaddelegate/1409408-urlsession