如何删除Core Data存储中除一个对象外的所有对象?

时间:2012-06-06 15:52:03

标签: iphone objective-c core-data restkit

是否有一种有效的方法可以删除Core Data存储中除一个或几个对象之外的所有对象?我们当前的解决方案是删除整个商店(使用RKObjectStore.deletePersistantStore - 我们使用RestKit)并重建对象,但这不是最佳的,因为它涉及额外的服务器请求。理想情况下,会有一些很好的方法将对象从商店“分离”,转储商店,然后重新插入它。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以先获取对象数量,然后再少一个:

NSInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest error:nil];
fetchRequest.fetchLimit = count-1;

执行fetch,遍历结果并删除它们。

您还可以通过使用sqlite框架向商店文件发送vacuum查询来减少数据库大小,但如果它仍然会再次填满,那么这不是必需的。