gpt4 book ai didi

ios - CoreData 不会删除自动生成的关系表中的记录

转载 作者:行者123 更新时间:2023-11-29 10:33:15 25 4
gpt4 key购买 nike

这里有 CoreData/SQLite 问题...

如果您在 XCode 中创建两个实体,TableATableB,并在它们之间创建多对多关系,CoreData 将在运行时创建第三个 sqlite 表调用“Z_TableAToTableB”来管理两者之间的关系。

但是,我注意到当我删除 TableA 和 TableB 中的所有行时,Z_TableAToTableB 中的记录会保留一段时间。它们不会立即删除。

这是设计使然吗?这真的很令人沮丧,并导致我的应用程序出现并发问题。我还在 TableA 和 TableB 之间设置了级联删除,因此从一个表中删除行将删除另一个表中的行,但永远不会删除第三个表中的行。

如何删除ZTableAToTableB中的记录?

更新:

这是我的 table 是如何设置的。为了便于讨论,让我们只关注项目-分割关系。注意两个表之间的多对多关系。有时,我需要从 Project 表中删除 ALL 记录并用一些新数据刷新它。但是当我这样做时,Project 表的 PK 再次从 1 开始。 (当用户从​​我的应用程序的旧版本升级到我的应用程序的新版本时尤其如此,但我离题了)如果 Z_ProjectToSegment 中的关系记录正在获取,这对我来说很好删除了,但他们没有。这会导致项目段之间的错误关系。

enter image description here

enter image description here enter image description here

最佳答案

我的猜测是您的删除规则有误,但您提到将其设置为级联。在内部,Core Data 可能会将旧的连接表四舍五入并在以后批量删除它们,它可能永远不会删除它们......谁知道呢。

最终,这不是我们应该担心的事情,即使我们担心,我们也无能为力(你真的,真的不想在 Core Data sqlite 文件中进行更改未经其许可)。

至于它“导致您的应用程序出现并发问题”,我认为这种可能性极小,我们需要一个更具体的示例。

关于ios - CoreData 不会删除自动生成的关系表中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28442399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com