SQLite持久存储作为缓存

时间:2011-10-11 22:30:55

标签: iphone objective-c ios core-data

我有一个构建自定义持久存储的想法,它基本上可以用作缓存。即可以从中检索本地SQLite Store中可用的对象,并从网络中检索那些不可用的对象,然后将其放入SQLite中。

问题是如何在Core Data机制中连接它,以便不需要更改应用程序逻辑。缓存存储需要表现得像一个适当的持久存储。目前我的想法是扩展SQLite持久存储。

所以问题是我应该从哪里开始? :)这是一个理智的想法还是我对Core Data的理解完全错误,这样的事情不应该在一个受人尊敬的应用程序中完成?以前有人做过类似的事吗?

2 个答案:

答案 0 :(得分:0)

本地缓存在您没有始终连接的设备中肯定很有价值。在本地商店工作时,应用程序的响应速度也更快。

编写自己的一个选项是restkit(restkit.org)。

从他们的页面:

核心数据支持。 RestKit构建于对象映射层之上,提供与Apple核心数据框架的集成。这种支持允许RestKit将远程加载的对象直接保存回本地存储,作为快速本地缓存或定期与云同步的主数据存储。 RestKit可以为您填充核心数据关联,允许基于自然属性的数据模型遍历。它还在Core Data原语之上提供了一个很好的API,可以简化配置和查询用例。

答案 1 :(得分:0)

请记住,CoreData具有内置的重要性能和缓存机制。当与获取的结果控制器交互时,CoreData会自动故障并填充对象,在引擎盖下执行缓存,并且还可以批量返回可以指定大小的对象的。

如果您有一个非常特殊的场景,也许您可​​以通过自写缓存重定向读取来提高性能。但是对于大多数用途而言,只使用CoreData,因为它可以自动使用,为您提供一些非常复杂的东西。