我正在使用以下缓存图像的代码从网站下载图像。我需要将图像存储在应用程序目录中以永久保存它们吗?
运行此代码后,我可以将我的设备打开飞行模式,重新启动它,然后打开应用程序,图像仍然存在。我对此感到困惑。我认为缓存只是暂时的?这张图片保存在哪里,最重要的是保存了多长时间?
我已经阅读了 Apple 的 URL Session Programming Guide 并没有回答这些问题。
func getImageFromWeb(_ urlString: String, closure: @escaping (UIImage?) -> Void) {
guard let url = URL(string: urlString) else {
return closure(nil)
}
let task = URLSession(configuration: .default).dataTask(with: url) { (data, response, error) in
guard error == nil else {
print("error: \(String(describing: error))")
return closure(nil)
}
guard response != nil else {
print("no response")
return closure(nil)
}
guard data != nil else {
print("no data")
return closure(nil)
}
DispatchQueue.main.async {
closure(UIImage(data: data!))
}
}; task.resume()
}
函数调用:
getImageFromWeb("http://www.apple.com/euro/ios/ios8/a/generic/images/og.png") { (image) in
if let image = image {
// Do something with image
}
}