使用RestKit和CoreData同步修改对象的正确方法

时间:2012-07-02 08:15:19

标签: ios web-services restkit

我需要帮助了解如何管理使用CoreData持久保存远程对象的iPhone应用程序的API。根据我的理解,当iOS应用程序获取远程对象时,它会加载资源路径中的所有对象。

对于后续请求,我希望通过让Web服务器仅返回自上次更新时间以来已更新的对象来减少开销。我通过返回upd_at比请求的last_update时间更新的对象来执行此操作。

然后,

RestKit将修改后的对象解析并映射到CoreData。这个实现是使用RestKit和CoreData执行同步的正确方法,还是我错过了介于两者之间的层?

谢谢!

1 个答案:

答案 0 :(得分:9)

通常,RESTful接口应该尝试“回归基础”。在您的情况下,我建议使用HTTP标头If-Modified-Since。它比传递另一个参数略微清晰,因为RestKit将处理HTTP状态响应,而无需您执行任何操作。

否则,您的方法似乎正常。服务器同步是一个巨大的问题,并且有很多文献和方法来处理它。如果你想做一些更复杂的事情,那么快速网络搜索将会出现一些方法,但你的方法就是我通常最终要做的事情。

如果用户可以编辑应用程序上的数据,则存在同步对设备进行的修改的问题。为此,您通常会设置一个对象范围“modified”标志,并且只有在修改对象时才上传该对象。