首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCache和持久性?

NSCache和持久性?
EN

Stack Overflow用户
提问于 2018-02-13 04:20:15
回答 2查看 965关注 0票数 2

我的应用程序执行一些项目的搜索,并下载每一个结果的图像。它在tableView上显示结果,每个结果显示一个单元格,每个单元格显示相应的图像。

如果搜索已经用相同的参数完成了,我想缓存这些图像以避免下载相同的图像。我一直在阅读NSCache,这是一个很好的选择,例如在这篇文章中,但我也读到了这里NSCache在应用程序发布之间没有持久化。但是,我在苹果的文档中找不到这些信息,有人能帮我找到吗?

如果我想保存下载的图像,即使是在应用程序发布之间,而且我无法使用NSCache,那么我应该如何管理呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-13 05:52:55

缓存是一项依赖于应用程序的任务。例如,正如您所说的,d不能使用NPCache,因为它不会永久存储。您可以尝试调优HTTP服务器(!)这样,您的应用程序的URL加载系统将缓存下载的图像尽可能长。但是,很难实现缓存完全满足您的要求。第三种选择是使用免费框架为您进行缓存。即使我觉得他们有一些缺点,你也应该看看。第四个选择是,编写自己的缓存,完全满足您的需要。这并不像听起来那么复杂。正如@rmaddy建议的那样,它本质上是在读取图像并将其写入缓存文件夹。

票数 0
EN

Stack Overflow用户

发布于 2021-03-06 08:16:10

我也遇到了同样的问题。我创建了一个轻量级库。它将数据存储在NSCache中,并与缓存文件夹同步。因此,在应用程序启动之间,您的数据是可用的。

用法:

代码语言:javascript
复制
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://github.com/nightwill/smart-cache.git

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48759384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档