RestKit 数据同步场景需要帮助

Posted

技术标签:

【中文标题】RestKit 数据同步场景需要帮助【英文标题】:Need help for RestKit data sync scenario 【发布时间】:2014-01-20 14:01:51 【问题描述】:

我正在将 RestKit 用于 ios To 应用程序。我已经使用restkit完成了以下操作: 1.从rest api中以json格式拉取服务器对象。 2. 删除核心数据中不再存在于服务器上的孤立对象。

现在我必须构建以下场景,如果设备上可以使用互联网并且用户正在添加新数据项,那么我应该首先做什么,即我应该先在本地存储新数据,然后再发布到服务器或首先我将数据发布到服务器并将其拉回设备上?

其次,如果设备上的互联网不可用并且用户插入新数据项然后在本地保存数据,在互联网可用性上,我如何将新添加的数据项发布到服务器,即我应该遵循什么方法以及 restkit 是否可以帮助我处理这种情况?

【问题讨论】:

【参考方案1】:

RestKit 包括可达性监控(实际上是 AFNetworking 的一部分)。所以你可以设置一个块在状态改变时运行:

[objectManager.HTTPClient setReachabilityStatusChangeBlock:...

通常,在所有情况下都将项目存储在本地。当项目被推送到服务器时,设置同步日期或项目上的标志以确认它已被更新。

这确实是一个更广泛的问题,关于如何管理对服务器的本地修改和更新。您可能需要一个整体方案来列出dirty 对象并将更新推送到服务器,并让服务器响应设置每个项目的同步时间。如果您使用 2 个日期(一个用于最后一次本地修改,一个用于远程同步),那么模型上的快速谓词获取将告诉您哪些对象是脏的并且需要推送到服务器。

【讨论】:

只要有 RestKit,你就会发现 "Wain" :)。谢谢@Wain,我也在开发离线模式的应用,你的解决方案很好。

以上是关于RestKit 数据同步场景需要帮助的主要内容,如果未能解决你的问题,请参考以下文章

iOS:RESTKit 与 CoreData 同步数据

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

RestKit:如何删除核心数据条目以保持内容与服务器同步?

JSONKit +lidenbrock 与。 RestKit?(使用CoreData)

如何处理与 RestKit 的关系同步(离线支持)

应用容灾中,MySQL数据表是否需要跨云同步?