如何设置核心数据实体之间的关系?

How to set the relationship between the core data entities?

所以,我有一个核心数据数据库,其中已经填充了数据的多个关系。我的问题是我创建了 table 之间的关系,但我不知道如何在代码中设置它们。我只需要设置一个,然后我就可以为其余的设置。 例如:Colleges 具有 "has Groups" 关系,因为一所大学有多个组。 Groupe table 具有 "bellongsToColegiu" 关系,因为一个或多个组在一所大学中。

我知道,我必须设置“.bellongsToCollegiu = Colegiu?”或者“.hasGrupe = Grupe?”但我不知道如何以正确的方式获取大学。

目前我的数据库中只有一所大学。

有人可以帮我解决这个问题吗?敲了几天脑袋,一无所获

谢谢你,祝你有愉快的一天!

您可以从数据库中获取现有的 'Colegiu' 或创建一个新的。对于获取和创建新的,您需要一个托管对象上下文。托管对象上下文是数据堆栈的最后一部分,它具有 3 个组件,包括 1. 持久性存储、2. 持久性存储协调器和 3. 托管对象上下文。

创建堆栈的方法如下: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/InitializingtheCoreDataStack.html

然后你可以创建一个新的对象:

let newItem = NSEntityDescription.insertNewObject(forEntityName: 'Colegiu',
                                                          into: 'reference to managed object context here')

或者您可以通过在托管对象上下文中调用 fetch 来搜索现有对象,

请记住,CoreData 是一个复杂的话题,需要时间来思考。祝一切顺利。

当您创建实体和它们之间的关系时 Xcode 也会生成处理这些关系的代码。处理关系的代码的名称模式是

  1. 与 to-one 关系的关系名称相同
  2. addToX 和 removeFromX(x 是关系)用于 to-many 关系。

所以你应该有例如 addToHasGrupe(_ value: Grupe) on College 并且你可以添加一个组实例并且 Grupe 应该有一个 belongsToColegiu 属性 你可以设置为大学实例。自动完成应该可以帮到你。