RestKit 自动 POST/PUT 重新上线时

RestKit automatically POST/PUT when back online

我们的应用程序支持离线 activity。这意味着我们希望在本地 持久保存新核心数据对象的创建以及对现有对象的任何修改。然后当应用程序再次上线时,我们会自动将这些更改(和任何依赖项)推送到服务器。

我认为 RestKit 会支持这样的操作,但目前离线时我们将 creations/modifications 存储在本地缓存中。如果我终止该应用程序,这些更改将不会保留。而且 RestKit 也没有尝试 post 这些项目到它们最初预期的端点。

我在这里找不到任何文档来支持我们需要的内容。

有没有办法让 RestKit 做我们需要的事情?

如果没有,我如何让离线更改持久保存到磁盘(而不是缓存)?那么将那些标记为未上传到服务器是否合适,然后在我们重新上线时尝试上传它们?

我还应该考虑其他重要事项吗?

在撰写本文时,RestKit 不支持该功能。

要保存到磁盘,您需要在 MOC 上调用 saveToPersistentStore: 而不仅仅是 save:

您需要自己实施一个方案,观察应用程序的 'online' 状态并扫描数据存储以查找需要上传的内容(这意味着维护一个标志以指示是否已上传)。

我通过向我的对象添加另一个名为 'updated' 的字段解决了这个问题。创建或修改对象时,此字段设置为 true 或 1。每次启动或同步应用程序时,它都会遍历本地核心数据副本并发送设置了 'updated' 的对象。在 Web 服务上,响应总是在返回响应时将 'updated' 清除为 false。这在网络服务和应用程序都在线的情况下效果很好。