【发布时间】:2017-06-17 21:23:28
【问题描述】:
我正在构建一个应用程序并希望使用NSCache 来存储数据以进行缓存。
大约有 5 个 API 我需要缓存数据。我应该使用 NSCache 吗?我对 NSCache 进行了研究,但对此我有一些疑问。
我确实浏览了下面的链接。
我在那里发现了一些有趣的东西。
NSCache 提供了另外两个有用的“限制”特性:限制缓存元素的数量和限制缓存中所有元素的总成本。要限制缓存允许拥有的元素数量,请调用方法 setCountLimit:。例如,如果您尝试向 countLimit 设置为 10 的缓存添加 11 个项目,缓存可能会自动丢弃其中一个元素。
如果我们将限制设置为 10,并且如果我们尝试添加第 11 个项目,那么它将丢弃第 1 个或第 10 个特定项目?也可以是随机物品。
如果我想为所有 API 存储 5 个不同的 NSCache 对象,我该怎么做呢?
我应该制作 5 个不同的 NSCache 对象还是应该在单个 NSCache 对象中存储 5 个不同的字典?
请告诉我最好的处理方法。
【问题讨论】:
-
你想在缓存中存储什么?只要它们是一次性对象,您可以在必要时从网络重新加载,那么
NSCache很可能适合您的特定情况。 -
我要做一个约会应用程序。我需要为此存储配置文件。在这种情况下我应该使用 NSCache 吗?
-
我认为你不应该这样做。如果您打算存储配置文件,最好设置某种 CoreData 模式,您可以在其中存储配置文件以供以后检索。例如,您可能希望将 NSCache 用于诸如用户的个人资料图片(图像)之类的东西,但可能不想自己存储整个个人资料。依靠缓存保存配置文件结果时,您严重限制了离线应用的使用潜力。
-
在配置文件中大约有 12 个属性。可能会有数千个可用的配置文件。如果我们存储在核心数据中,那么这也不是一个好习惯,不是吗?那么最好的配置文件是什么。
-
为什么将这些信息存储在 CoreData 中不是一个好习惯?将它存储在 CoreData 中可能不是一个好习惯不。
标签: ios swift xcode caching nscache