当它们没有出现在 JSON 中时,Restkit 删除 Coredata 中的对象

Posted

技术标签:

【中文标题】当它们没有出现在 JSON 中时,Restkit 删除 Coredata 中的对象【英文标题】:Restkit deleting objects in Coredata when they don't appear in JSON 【发布时间】:2012-05-24 21:14:49 【问题描述】:

我遇到了一个问题……这有点令人沮丧。但这是由于我自己(缺乏)作为程序员的技能:)。

基本上,我有一个在线 Rails 服务,可以将博客文章发送到我的应用程序(使用休息套件和核心数据制作)。 Restkit 然后将它们映射到一个 tableview 上。一旦 restkit 这样做了,当向服务器发出“最后一次成功”请求时,我会在我的应用程序中创建一个时间戳。完美运行。

下次我更新时,它会将该时间戳发送到 rails 应用程序,然后该应用程序才会发回从那时起添加的对象(以 JSON 格式)(即增量更新)。

现在,由于某种原因,当 restkit 收到此问题时,它会从核心数据中的先前更新中删除所有对象,并且只显示它在 JSON 中接收到的“增量”/新对象。所以我认为 restkit 认为由于旧对象不是新 JSON 的一部分,所以它们必须是孤立的并继续删除它们。

我怎样才能阻止这种情况发生?我的问题是我不想每次有更新请求时都传输我的整个在线数据库(我认为带宽浪费和有点不雅)。有没有办法保持 coredata db 完整而只能“添加”到它?

我看到一些帖子提出了同样的问题,但没有一个回答这个问题(我想,但有时我可能很愚蠢)!

请帮忙

问候

【问题讨论】:

【参考方案1】:

想通了;

查看 RkManagedObjectLoader.m 文件并寻找方法 deleteCachedObjectsMissingFromResult

禁用此方法以防止核心数据中的任何内容被删除。

希望对你有帮助

【讨论】:

应该有更优雅的解决方案。

以上是关于当它们没有出现在 JSON 中时,Restkit 删除 Coredata 中的对象的主要内容,如果未能解决你的问题,请参考以下文章

CoreData 和 RestKit

RestKit嵌套的一对多关系映射很慢

RestKit 集成问题“没有这样的文件或目录”

Restkit:multipartFormRequestWithObject 不是 json

将数据存储在 JSON 文件中时出现类型错误。(KivyMD Python)

当 Restkit 尝试映射时,带有字符串字段(包含 JSON 字符串)的 Json 崩溃