0

我从这篇文章中发现,我可以通过获取所有实例并将它们全部删除来删除实体的所有实例。没有更有效的方法来进行删除吗?我的考虑是我将在该实体中拥有数千条记录。

4

2 回答 2

1

没有更有效的方法,因为 CoreData 是 ORM 层,而不是数据库。因此,您处理对象,如果您希望它们消失,则必须删除它们。

您可能想要研究的一个技巧是创建一个与要删除的对象具有一对多关系的父对象。你基本上可以只有一个指向你的大表中的每个条目。在模型中的关系上设置级联删除选项。然后,当需要清除时,您只需删除父对象。由于延迟加载,它不会尝试加载您的其他对象。

话虽如此,我自己还没有尝试过,但这似乎是一个可行的选择。

于 2012-07-31T11:31:55.467 回答
0

在此实体的所有实例都是自包含的特殊情况下,删除备份文件并重新初始化管理对象会更快。这仅在您的数据可以被安排以便临时数据位于其自己的存储中时才有效。

否则,您可能会通过使用直接数据库访问而不是核心数据来获得更好的结果。

于 2012-07-31T11:32:29.943 回答