我似乎遇到了使用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中。
答案 0 :(得分:1)
您想查看“获取请求块和删除孤立对象”部分:http://restkit.org/api/latest/Classes/RKManagedObjectRequestOperation.html。它要求您使用RKObjectManager并使您的对象具有添加到映射中的唯一标识,并描述您告诉RestKit如何在数据存储中查找应删除的内容的方式(并且它会检查并执行不删除它刚从服务器收到的东西。
答案 1 :(得分:0)
尽管reference docs引用的Wain有点令人困惑,但设置RKFetchRequestBlock
实际上是让RestKit
在本地删除孤立对象的方法,以及不在服务器上。我发布了类似的问题here并用一些示例代码做了自我回答。