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:如何删除核心数据条目以保持内容与服务器同步?