macOS Core Data – toOne 新记录是不是在创建时自动分配给 toMany 对象?

Posted

技术标签:

【中文标题】macOS Core Data – toOne 新记录是不是在创建时自动分配给 toMany 对象?【英文标题】:macOS Core Data – are toOne new records automatically assigned to the toMany Object the moment they are created?macOS Core Data – toOne 新记录是否在创建时自动分配给 toMany 对象? 【发布时间】:2019-12-28 16:03:55 【问题描述】:

我有两个核心数据实体:CategoryMusic

Category 具有toMany 关系。 Music 具有 toOne 关系。

每个实体在单独的表格中显示它们的值。 表格由独立的NSArrayControllers 填充。

我在它的桌子上选择了一个类别。

我在MusicArrayController上的代码上通过这一行创建了一个新的Music

let newAttribute = self.newObject() as! Music
newAttribute.label = "New Music"
self.addObject(newAttribute)

如果在那之后,我检查了我选择的最后一个类别,我看到这个新对象已经在该类别的 toMany NSSet 中。

例子:

    我在类别表中选择了摇滚。 表 2 显示了该类别下的音乐。 我添加了新音乐。 摇滚乐类别已经在其toManyNSSet 上列出了新音乐。

我没有添加任何代码来完成这项任务。

这是 Core Data 的正常行为吗?

【问题讨论】:

【参考方案1】:

阵列控制器显示和管理CategoryMusic 对象。当 Music 对象与 self.addObject(newAttribute) 添加时,数组控制器会将 Music 对象添加到关系中。这是正常的NSArrayController 行为,无论有无Core Data。

【讨论】:

太棒了。我从来不知道。谢谢。它是如何知道要添加对象关系的,这很神奇,因为我有两个数组控制器。

以上是关于macOS Core Data – toOne 新记录是不是在创建时自动分配给 toMany 对象?的主要内容,如果未能解决你的问题,请参考以下文章

Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?

Core Data Macos 应用程序和与 OS X 10.7 的兼容性

Core Data iCloud 同步还是其他?

将新对象保存在索引路径 Core Data

如何在 Core Data 模型中动态创建新实体(表)?

写入 Core Data 时创建一个新对象