I need to cache data that I receive from an remote url to a local URL. I am able to do this successfully with:
let dataToCache = try Data(contentsOf: url)
try dataToCache.write(to: cacheURL)
But I was wondering if there is some type of observer I can use to display a progress view as the data is written?
Don't use
Data(contentsOf: url)
to make synchronous request for urls that are not local resources. You should useURLSession
.To observe the progress you need to set urlsessiondownloaddelegate https://developer.apple.com/documentation/foundation/urlsessiondownloaddelegate and to monitor the progress, use the methodhttps://developer.apple.com/documentation/foundation/urlsessiondownloaddelegate/1409408-urlsession