重新联机时,RestKit会自动POST / PUT

时间:2015-01-20 16:51:27

标签: ios objective-c iphone swift restkit

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

我认为RestKit会支持这样的操作,但是当前离线时我们将创建/修改存储在本地缓存中。如果我杀了应用程序,那些更改将不会持续存在。此外,RestKit也没有尝试将这些项目发布到最初的预期端点。

我找不到任何支持我们需要的文档。

RestKit有办法做我们需要的吗?

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

我应该考虑其他重要的事情吗?

2 个答案:

答案 0 :(得分:1)

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

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

您需要自己实施一个方案,观察应用程序的“在线”状态,并扫描数据存储以查找需要上传的内容(这意味着要保留一个标记以指示它是否已经发生)。

答案 1 :(得分:1)

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