gpt4 book ai didi

ios - 在 Core Data 中设置父子关系

转载 作者:可可西里 更新时间:2023-11-01 04:09:18 26 4
gpt4 key购买 nike

我正在尝试在 Core Data 中建立关系。我有一个树列表,每棵树都有一个水果列表。所以我有一个 Tree 实体和一个 Fruit 实体。

在代码中,我想列出树,例如在 TableView 中。当您单击一棵树时,它应该会显示生长在该树上的水果列表。

如何建立这种关系?我需要给 Fruit 一个名为 tree 的属性吗?我如何在代码中设置关系,例如,当我创建一个 Fruit 时,我如何将它与给定的 Tree 相关联?

最佳答案

太阳,

这很简单。首先,您的模型应如下所示(为简单起见,我跳过了属性)。

enter image description here

在这种情况下,Tree 可以有零个或多个 Fruit(参见 fruits 关系)。相反,Fruit 具有 关系(反向关系)。

特别是,fruits 关系应该如下所示

enter image description here

到这里,可以看到已经设置了一对多的关系。 Delete 规则意味着如果您移除一棵树,它的果实也将被删除。

关系如下

enter image description here

这是一对一的关系,因为水果只有附着在树上才能存在。 可选 标志未设置。所以,当你创建一个水果时,你还需要指定它的父级(在本例中是一棵树)。 Nullify 规则意味着当您删除一个水果时,Core Data 不会删除与该水果关联的树。它只会删除您指定的水果。

当你创建一个 Fruit 实体时,你应该遵循类似的路径

NSManagedObject *specificFruit = [NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:context];
[specificFruit setValue:parentTree forKey:@"tree"];

或者如果您创建了 NSManagedObject 子类:

Fruit *specificFruit = [NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:context];
specificFruit.tree = parentTree;

希望对您有所帮助。

附言检查代码,因为我是在没有 Xcode 支持的情况下编写的。

关于ios - 在 Core Data 中设置父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15232092/

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