iOS上的Objective C数据缓存

lav*_*voy 18 cocoa-touch objective-c ios

我从API中提取数据,然后用它构建我的数据对象.我希望将来缓存这些数据.我一直在NSUserDefaults中存储来自api的字符串,然后在每次加载应用程序时重新解析它.这样可行,但这似乎是错误的方法.

我怎样才能做到这一点?

Eri*_*c V 15

你注意到了NSCache吗?

一个NSCache对象是一个可变集合存储键值对,类似于NSDictionary对象.本NSCache类提供的编程接口添加和删除对象和基于缓存的总成本和对象的数量设置逐出策略...

  • 据我所知,在这种情况下需要的是***持久缓存***.`NSCache`是内存缓存,基本上是`NSDictionary`,可以在低内存条件下丢弃缓存数据. (8认同)

Wol*_*urs 11

就个人而言,我非常喜欢EGOCache课程,我在项目中使用了很多:

https://github.com/enormego/EGOCache

这些类很容易使用,我曾经拥有自己的类似设计的类,但这些只是更全面,所以我决定坚持使用它们(不要重新发明轮子).


lav*_*voy 9

这个问题有很多不同的解决方案,没有"正确"的方法.一些流行的选择是:

  • 核心数据 - Apple的持久性框架.非常高效,但更难.
  • SQLite - 快速而灵活,但骨干.
  • Plists - 基本上将文件写入磁盘,您必须手动读写.
  • NSUserDefaults - 最轻的"键值"选项.

我鼓励你阅读所有四个,看看哪一个最适合你.