我正在从一个API中获取数据,然后用它来构建我的数据对象。我希望将这些数据缓存起来以备将来使用。目前我是将来自API的字符串存储在NSUserDefaults中,并在每次应用程序加载时重新解析它。虽然这种方法可行,但似乎不是最好的方式。
有什么更好的方法吗?
我正在从一个API中获取数据,然后用它来构建我的数据对象。我希望将这些数据缓存起来以备将来使用。目前我是将来自API的字符串存储在NSUserDefaults中,并在每次应用程序加载时重新解析它。虽然这种方法可行,但似乎不是最好的方式。
有什么更好的方法吗?
你是否注意到了 NSCache?
NSCache
对象是一种可变集合,它存储键值对,类似于NSDictionary
对象。NSCache
类提供了编程接口来添加和删除对象,并基于缓存中的对象的总成本和数量设置逐出策略...
个人而言,我非常喜欢EGOCache类,在我的项目中经常使用:
https://github.com/enormego/EGOCache
这些类很容易使用。我曾经有自己的类也有类似的设计,但是这些类更加完善,所以我决定坚持使用它们(不想重新发明轮子)。
解决这个问题的方案有很多种,没有一种“正确”的方法。以下是几种流行的选择:
我鼓励你阅读所有四种方案,并看看哪种最适合你。
NSCache
是内存缓存,基本上是一个NSDictionary
,可以在低内存条件下丢弃缓存数据。 - Palimondo