为什么远程删除实体不会从核心数据和数据存储中移除删除?在 开头设置一个断点 - (空)deleteCachedObjectsMissingFromResult:(RKObjectMappingResult *)在RKManagedObjectLoader结果 显示出来的变量结果不包含任何东西。RestKit /核心数据:远程删除实体获得不从核心数据
我可以通过在RestKit委托中实现这个特性来解决这个问题 - (void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)对象,但是在我看来这是一种不洁的代码。 RestKit/Core Data应该自己做这件事?!不管怎样,下面的实现可以解决这个问题:
- (void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects
{
NSArray *allReservations = [Reservation findAll];
for(Reservation *reservationRecord in allReservations) {
if(![objects containsObject:reservationRecord]) {
[[[[RKObjectManager sharedManager] objectStore] managedObjectContextForCurrentThread] deleteObject:reservationRecord];
}
}
}
任何想法来解决这个问题,而不didLoadObjects的帮助?添加/更新现有实体正常工作。
我被困在完全相同的点。很高兴你在这里有一个解决方案,但我想知道为什么方法-deleteCachedObjectsMissingFromResult不会删除现在不存在的服务器对象。我发现方法-fetchRequestForResourcePath不会返回适当的fetchRequest,但我还没有做足够的研究来查看RKObjectMappingProvider如何为资源路径存储/创建fetchRequests。 –