让 RestKit 离开特定的孤立 CoreData 托管对象

Posted

技术标签:

【中文标题】让 RestKit 离开特定的孤立 CoreData 托管对象【英文标题】:Getting RestKit to leave specific orphan CoreData managed objects 【发布时间】:2014-02-26 22:55:50 【问题描述】:

我正在使用 RestKit 来管理我的 CoreData 对象与我的服务器的同步,到目前为止它运行良好。但是,我有一个用例,我不确定继续使用 RestKit 的最佳方法是什么。

RestKit 目前会删除我在服务器上不再存在的孤立托管对象,这很好,但有时我不希望删除某些对象。

例如,假设我创建了一个托管对象,但当时我无法访问互联网。我保存了托管对象,但无法将其保存在服务器上。我希望稍后在我可以访问服务器时将其保存在服务器上,但目前,该对象将在下一轮中被删除,因为 RestKit 会看到这些对象在最新的服务器响应中不存在,因此也会将它们标记为删除。

我可以在对象上放置一个“草稿”标志,并在获得服务器更新之前对其进行标记,并确保在进行更新之前先将所有草稿对象发送到服务器。这似乎是一种可能的解决方案。

但是,我想知道 RestKit 是否支持另一种方式。

谢谢! 帕尔默

【问题讨论】:

【参考方案1】:

您的解决方案很好。如果您在获取请求块中添加谓词以将它们过滤掉,则无需确保先发送它们。上传后请务必重置标志。

该解决方案比任何与获取请求块中的身份相关的替代方案或确保在下载更新之前发送并确认更新的任何替代方案都更干净。

【讨论】:

我忘记了使用谓词。这很有意义。谢谢!

以上是关于让 RestKit 离开特定的孤立 CoreData 托管对象的主要内容,如果未能解决你的问题,请参考以下文章

RestKit、NSFetchedResultsController 和删除孤立对象

Restkit - 删除具有相同 URL 路径的孤立对象

在 restKit 0.20 中删除孤立对象

在 Restkit 执行映射操作之前删除 Core data 中的现有对象

如何使用 RestKit 将嵌套的 JSON 对象存储到核心数据中

如何使用 RestKit 删除对象?