我有我认为是非常普遍的情况,但由于我是iOS编程新手,我不确定编码它的最佳方式。将核心数据与服务器端数据同步的最佳方式?
梗概:
我具有可以通过iPhone应用程序通过REST服务中检索一个服务器上的数据。在服务器端,数据是具有外键(整数id号)的对象。
我将通过REST检索到的数据存储在核心数据中。托管对象具有“objId”属性,因此我可以唯一标识其余代码中的托管对象。
我的应用必须始终反映服务器数据。
在向服务器发出后续请求:
可能无法返回某些对象,他们已经删除了服务器上 - 在这种情况下,我需要删除从核心数据对应的对象 - 这样我正确地反映了服务器的状态。
某些对象的属性已更改,因此相应的管理对象需要使用新数据进行更新。
我的解决办法 - 和问题你
要得到的东西去在我的应用程序,我做了删除在核心数据中的所有对象,然后将所有的新对象,以创建最简单的解决方案最新的服务器端数据。
我不认为这是最好的方式来处理它:)随着我的应用程序的进展,我现在想要将我的tableview与NSFetchedResultsController连接起来,并且已经意识到我的方法是删除所有东西,添加不会再工作。
什么是同步核心数据与服务器端数据的尝试和可信赖的方式?
我是否需要为每个从服务器返回的对象ID提出一个获取请求,然后用新数据更新对象?
然后遍历核心数据中的所有对象,看看哪些没有被更新,并删除它们?
这是最好的办法吗?对Core Data中的每个对象进行提取看起来有点贵,就这些。
的伪码罚款任何答案:)
在此先感谢!
谢谢乔迪!在那里的许多技巧真的帮助我重新设计了我做事的方式。 – Stretch