gpt4 book ai didi

ios - CoreData - NSManagedObject 子对象一次只存储在一个对象中

转载 作者:可可西里 更新时间:2023-11-01 01:05:50 24 4
gpt4 key购买 nike

我有两个 CoreData 实体:ListItemList 包含与 Item 目的地的关系。是一对多的关系(List实体可以包含很多Item)

List = {
id: String,
name: String
items: <Item>
}

Item = {
id: String,
name: String
}

现在,假设我们有:
总共 2 个列表 -> List_1List_2
总共 3 个项目:Item_1Item_2Item_3

列表看起来像:

List_1 = {
id: "1001",
name: "Foo"
items: <Item_1, Item_2>
}

List_2 = {
id: "1002",
name: "Bar"
items: <Item_2, Item_3>
}

当我对 CoreData 进行提取时,我遇到了不一致的结果,不一致是基于应用中加载的最后一个 List

例如,如果我使用该应用程序并且我加载的最后一个列表是 List_1,当我查询以获取 List_1 中的所有项目时,我将返回:

Item_1, Item_2

但是,如果我使用该应用程序并且我加载的最后一个列表是 List_2,当我查询以获取 List_1 中的所有项目时,我将返回:

Item_1(只有......没有 Item_2?!)就好像它被“移”出了 List_1 并进入了 List_2 因为 List_2 是访问过的包含“Item_2”的最后一个列表。

作为一对多关系的一部分存储的 CoreData 对象是否一次只允许存在于一个 CoreData 对象中?有人认为我处理这个问题的方式有问题吗?

感谢任何帮助!谢谢

最佳答案

看起来你在列表和项目之间有一个一对多的关系:

List <-->>Items

One to Many

这意味着一个列表可以有很多项目,但一个项目只能有一个列表。

但是你希望项目能够属于多个列表,所以你需要在列表和项目之间创建多对多的关系

List <<-->>Items

在这种情况下,一个列表可以有多个项目,但一个项目可以属于多个列表。

Many to Many

希望对你有帮助

关于ios - CoreData - NSManagedObject 子对象一次只存储在一个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30610811/

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