Restkit从核心数据中删除项目

时间:2013-06-15 17:06:33

标签: ios objective-c core-data restkit

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

我想要发生的是进行初始调用以获取所有MovingObjects 然后再次调用它并让Restkit保留CD中的那些,如果它们与那些返回的那些匹配,添加我没有的,但删除CD中没有从第二次调用返回的其余部分。

我试图只存储新鲜的MovingObjects,因为一些MovingObjects可能会移出地理围栏区域。

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

我需要做什么或希望Restkit做什么

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

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

我在想,因为这些是不断瞬态的物体,我不应该把它们存放在CD中。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

尽管reference docs引用的Wain有点令人困惑,但设置RKFetchRequestBlock实际上是让RestKit在本地删除孤立对象的方法,以及不在服务器上。我发布了类似的问题here并用一些示例代码做了自我回答。