最近才发现 Tumblr 开源了 TMCache,这是它们用在 iOS 客户端的缓存程序,可以很方便地保存和读取缓存,线程安全,基本完全符合我对简单缓存的需求。只要是实现了 NSCoding
协议的对象,都能保存到磁盘中。
而 Github 开源的 Mantle,则提供了一系列便捷的方法映射数据到对象:
- 使用
MTLManagedObjectAdapter
,NSManagedObject
和MLTModel
可以互相转换。 - 使用
MTLJSONAdapter
,JSON 对象和MLTModel
可以互相转换。 - 基类
MLTModel
实现了NSCoding
协议, 可以直接用NSKeyedArchiver
保存到磁盘,或用NSKeyedUnarchiver
重新读取文件到内存中。
这样一来,读取服务器接口数据的流程可以是这样:
- 访问接口,获得 JSON 数据。
- 使用
MTLJSONAdapter
转换 JSON 数据为MLTModel
子类的对象。 - 使用
TMCache
保存该对象到缓存中。 - 回调请求数据的对象。
- 下次再请求数据时,请求
TMCache
获得缓存。
同时使用这两个项目的话,可以大大地简化保存缓存的工作(老是要想保存在哪里是一件很头疼的事)。但是对于需要读取大量数据的应用,还是需要配合 Core Data 一起用,否则性能会是个问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。