是否有一种有效的方法可以删除Core Data存储中除一个或几个对象之外的所有对象?我们当前的解决方案是删除整个商店(使用RKObjectStore.deletePersistantStore
- 我们使用RestKit)并重建对象,但这不是最佳的,因为它涉及额外的服务器请求。理想情况下,会有一些很好的方法将对象从商店“分离”,转储商店,然后重新插入它。
谢谢!
答案 0 :(得分:0)
您可以先获取对象数量,然后再少一个:
NSInteger count = [self.managedObjectContext countForFetchRequest:fetchRequest error:nil];
fetchRequest.fetchLimit = count-1;
执行fetch,遍历结果并删除它们。
您还可以通过使用sqlite框架向商店文件发送vacuum
查询来减少数据库大小,但如果它仍然会再次填满,那么这不是必需的。