iPhone中缓存和同步的最佳实践是什么?

时间:2014-10-16 07:06:29

标签: ios objective-c iphone sqlite core-data

我正在寻找一种在客户端缓存数据的方法,并根据时间戳将数据与服务器数据同步,我担心使用Coredata或Sqlite的方法。

我知道CoreData不是RDBMS,它将内存作为一个完整的对象空间,另一方面,Sqlite非常强大,

什么是CoreData或Sqlite的最佳选择。

进一步在未来版本(预期)中,如果服务器数据库经历了一些更改,例如由于某种原因添加到表或删除的任何列或更新,我可以如何计划实现可伸缩性。

任何赞赏的想法......

谢谢

2 个答案:

答案 0 :(得分:0)

我总是优先考虑SQLite,但我猜他们彼此之间有点相同。当你需要使用它时,SQLite就更简单了(根据我的经验,这是初级级别),特别是像FMDB这样的东西(git it!)。

我总是被告知SQLite> CoreData(如果我们想要那么简单)。在使用两者之后我碰巧也有同感。虽然另一方面,如果你不使用FMDB,SQLite很难用代码编写。

可扩展性?您需要更新自己的应用和表格,两种选择都是一样的。再一次,当我说sqlite感觉更轻松,更舒服时,我觉得这是完全基于意见的。使用SQL或更新数据库。

现在我想在得到任何贬低之前强调这一点:它真的是我的感受,而不是每个人都同意的简单事实。等待更多答案。我只在2或3个不同的项目中使用了CoreData,我已经更多地使用了SQLite,所以也许我已经习惯了一个。

答案 1 :(得分:0)

我支持使用可用于手头任务的最高级API,所以在这种情况下我会投票给CoreData。虽然我必须说它有其特权。特别是当您遇到需要同步数据的情况时,CoreData可能并不理想。

在与API交谈时,我对GitHub自己开发的Mantle Framework有很好的体验。 Mantle本身不会保留数据,但我很确定有一种解决方案可以将它“连接”到CoreData。甚至还有一个AFNetworking扩展名Overcoat,可让您轻松创建MTLModel。关于该主题,请查看thisMattt Thompson讲话。

谈论AFNetworking,根据您的使用情况,可能更容易让AFNetworking缓存HTTP响应,而不用担心因为请求在进入网络之前首先从缓存中提取数据而保持不变。