如何删除核心数据存储中除一个对象之外的所有对象



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

谢谢!

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

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

执行提取,循环访问结果并删除它们。

您还可以通过使用 sqlite 框架向存储文件发送vacuum查询来减小数据库大小,但如果无论如何都要再次填满,这并不是真正必要的。

最新更新