gpt4 book ai didi

cocoa - 将 Core Data 数据库保存到 sqlite 文件会丢失一些递归/循环关系信息

转载 作者:行者123 更新时间:2023-12-03 17:16:56 24 4
gpt4 key购买 nike

我的 iPhone 文字游戏中有非常简单的循环(或 self 反射(reflection))关系核心数据模型。实体词与其自身具有一对多关系,指向相关词:

alt text

我使用 NSPersistentDocument Core Data Mac OS X 模板应用程序将单词导入 Core Data sqlite 数据库。

导入数据后,我可以看到所有关系都已正确导入(每个单词至少有一个或多个相关单词)。

但是,将数据库保存到 sqlite 文件并再次重新打开后,相关单词指针会大量丢失(单词仍然存在,但关系消失了 - NSLog 显示它们为空强>)。有时相关词信息的丢失可能高达 50%。

当我将数据库存储为 XML 或二进制 文件并重新打开它时,所有关系都会正确保存。

任何人都可以指出我为什么当同一数据库的 XML 和二进制版本正确存储所有内容时,保存到 sqlite 文件会导致某些关系数据丢失

我对 sqlite 很感兴趣,因为它在 iPhone 中使用时(内存)效率更高,当然产生的数据库文件大小要小得多。

最佳答案

这不是一对多关系。这是一种一对多的关系。它没有逆元。您可以看出这一点,因为线条的一端只有箭头。尝试添加逆关系,看看是否有帮助。

关于cocoa - 将 Core Data 数据库保存到 sqlite 文件会丢失一些递归/循环关系信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005137/

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