缓存通常分为
- 按需缓存
- 预缓存
1.按需缓存是把服务器获取的内容以某种形式存放在本地文件系统,之后对于每次请求,检验缓存中是否存在这块数据。只有当数据不存在(或者过期)的情况下才从服务器获取。
2.预缓存则是把内容放在本地以备将来访问。对于预缓存来说,数据丢失或者缓存不命中是不可接受的,比如,用户下载了文章准备在地铁上看,却发现设备上不存在这些文章。
选择使用按需缓存还是预缓存的一个简便方法是判断是否需要在下载数据之后处理数据。后期处理数据可能是以用户产生编辑的形式,也可能是更新下载的数据,比如重写HTML页面里的图片链接以指向本地缓存图片。如果一个应用需要做上面提到的任何后期处理,就必须实现预缓存。
1.实现数据模型缓存
可以用NSKeyedArchiver类实现数据模型缓存。为了把模型对象用NSKeyedArchiver归档模型类需要遵循NSCoding协议。
2.CoreData
3.原始的SQLite
当我们选择用哪种缓存技术的时候,三种脱颖而出:URL缓存、数据模型缓存(利用NSKeyedArchiver)、Core Data
按需缓存可以用数据模型缓存或URL缓存来实现。