将从Web服务检索的项目存储为Core Data对象是一种好习惯吗?

时间:2015-02-25 20:41:08

标签: ios core-data

我听说iOS开发人员从RESTful Web服务中检索项目并立即将它们存储为Core Data对象。我可以看到为什么这可能有用,如果你想保存或缓存这些项目,以便用户以后可以看到它们(例如Facebook feed),但有没有其他理由这样做?我的Web服务中的项目在一小时内无效,因此缓存是不可能的。如果这样做是个好习惯,为什么?

2 个答案:

答案 0 :(得分:3)

对我来说,在本地存储数据有两个原因:

  • 更好的用户体验:首先,显示旧内容,然后在后台进行更新,然后在有新内容时更新应用程序用户界面。
  • 无法在线模式下离线工作。

即使您的项目在一小时内无效,如果您不在本地缓存项目,您的应用程序也必须调用webservice来检索这些项目,这需要时间。

答案 1 :(得分:1)

缓存几乎从不会受到伤害,而CoreData是一种非常好的缓存数据的方式,它是一堆类似的记录。

我是你提到的那些使用CoreData存储几乎任何东西的开发者之一。因为我这样做,很多有用的代码和自制框架随着时间的推移总结起来,这使得使用CoreData和RESTful apis变得轻而易举。如果将api连接到CoreData只是几行代码的问题,那么没有任何理由不这样做。

虽然我无法共享我的库,但我强烈建议您查看RestKit,这几乎完全相同 - 将RESTful api映射到CoreData。如果您还没有习惯CoreData,请不要担心。它是一个非常强大的工具,习惯它绝对是值得的!