Restkit 从核心数据中删除项目

Posted

技术标签:

【中文标题】Restkit 从核心数据中删除项目【英文标题】:Restkit removing items from core data 【发布时间】:2013-06-15 17:06:33 【问题描述】:

我似乎在使用 RestKit 从 Core Data 中删除项目时遇到问题。我通过restkit调用了一些基于lat和lng的MovingObjects。它们存储在 CD 中。当我想再次拨打电话时,我手动从 CD 中删除所有 MovingObjects,然后再次拨打电话。

我想要做的是进行初始调用以获取所有 MovingObjects 然后再次调用它,如果它们与再次返回的匹配,则让 Restkit 将它们保留在 CD 中,添加我没有的任何内容,但删除第二次调用未返回的 CD 中的其余部分。

我正在尝试仅存储新鲜的 MovingObjects,因为某些 MovingObjects 可能会移出地理围栏区域。

已编辑 ======== 要清楚。我不想删除服务器上的对象。我问服务器,“给我你在基于这个纬度,lng 的地理围栏区域中看到的所有对象”。服务器以 20 个对象的列表进行响应。我认为每 15 秒再次轮询一次,然后再次询问“根据这个纬度,lng 将你在地理围栏区域中看到的所有对象给我”它会响应。但这次它响应了 10 个对象,其中 5 个与上次相同,5 个新对象。

我需要或希望 Restkit 做的是

1.删除 CD 中的所有对象并替换为第二次调用中的 10。

2。从 CD 中删除第二次调用时未返回的 10 个,保留 5 个持久对象并添加新的 5 个对象。

我在想,因为这些是连续瞬态的对象,我不应该将它们存储在 CD 中。

【问题讨论】:

【参考方案1】:

您想查看“获取请求块和删除孤立对象”部分:http://restkit.org/api/latest/Classes/RKManagedObjectRequestOperation.html。它要求您使用 RKObjectManager 并让您的对象具有添加到映射中的唯一标识,并描述您告诉 RestKit 如何在数据存储中查找应删除的内容的方式(它会检查并不'不要删除它刚刚从服务器收到的东西)。

【讨论】:

这不是我想要的。我已经更新了上面的原始帖子。 您在阅读文档时的回答是删除滞留在服务器上的内容。我不想删除服务器上的任何东西! 我可以看出你会如何解释它,但它只会从本地商店中删除项目,而不是从服务器中删除。【参考方案2】:

虽然Wain 所指的reference docs 有点混乱,但设置RKFetchRequestBlock 实际上是让RestKit 在本地而不是在服务器上删除孤立对象的方法。我向here 发布了类似的问题,并使用一些示例代码进行了自我回答。

【讨论】:

以上是关于Restkit 从核心数据中删除项目的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 2.0 删除 RKManagedObjectStore 但保留 NSManagedObjectModel

在核心数据中删除数据库中的对象的策略。 [RestKit/核心数据]

将输出映射到 Restkit 中的核心数据时崩溃

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

Restkit 删除 coredata 中特定对象的所有对象

从数组中删除项目(来自 API 的带有 JSON 的 Restkit 项目)