发布于 2018-02-13 05:52:55
缓存是一项依赖于应用程序的任务。例如,正如您所说的,d不能使用NPCache,因为它不会永久存储。您可以尝试调优HTTP服务器(!)这样,您的应用程序的URL加载系统将缓存下载的图像尽可能长。但是,很难实现缓存完全满足您的要求。第三种选择是使用免费框架为您进行缓存。即使我觉得他们有一些缺点,你也应该看看。第四个选择是,编写自己的缓存,完全满足您的需要。这并不像听起来那么复杂。正如@rmaddy建议的那样,它本质上是在读取图像并将其写入缓存文件夹。
发布于 2021-03-06 08:16:10
我也遇到了同样的问题。我创建了一个轻量级库。它将数据存储在NSCache中,并与缓存文件夹同步。因此,在应用程序启动之间,您的数据是可用的。
用法:
class MyClass {
private let cache: SmartCache<URL, Data> = .init()
func downloadImage(from url: URL) {
if let data = self.cache[url], let image = NSImage(data: data) {
// Here your `image`
} else {
// Download your image and save it to our cache
cache[url] = image.tiffRepresentation
}
}
}https://stackoverflow.com/questions/48759384
复制相似问题