在核心数据中设置父子关系
我正在尝试在核心数据中build立关系。 我有一个树列表,每棵树都有一个水果列表。 所以我有一个Tree
实体和一个Fruit
实体。
在代码中,我将要列出树,例如在表视图中。 当你点击一棵树时,它应该显示一个在树上生长的水果列表。
我如何build立这种关系? 我需要给Fruit
一个叫树的属性吗? 而我如何在代码中设置关系,例如,当我创build一个Fruit
时,我如何将它与给定的Tree
相关联?
太阳城,
这很简单。 首先,你的模型应该如下所示(为了简单起见,我跳过了属性)。
在这种情况下, Tree
可以有零个或更多的Fruit
(见fruits
关系)。 相反,一个Fruit
有一个tree
关系(反比关系)。
特别是fruits
关系应该如下所示
在这里,您可以看到已经设置了一对多的关系。 删除规则意味着如果你删除一棵树,其果实也将被删除。
tree
关系如下所示
这是一对一的关系,因为水果只有在附着在树上才能存在。 可选标志未设置。 所以,当你创build一个水果时,你也需要指定它的父亲(在这种情况下是一棵树)。 取消规则意味着当你删除一个水果时,核心数据不会删除与该水果相关的树。 它只会删除你指定的水果。
当你创build一个Fruit
实体时,你应该遵循一个相似的path
NSManagedObject *specificFruit = [NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:context]; [specificFruit setValue:parentTree forKey:@"tree"];
或者如果你有创buildNSManagedObject
子类:
Fruit *specificFruit = [NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:context]; specificFruit.tree = parentTree;
希望有所帮助。
PS检查代码,因为我没有Xcode支持编写。