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 【问题描述】:我有两个核心数据实体:Category
和 Music
。
Category
具有toMany
关系。
Music
具有 toOne
关系。
每个实体在单独的表格中显示它们的值。
表格由独立的NSArrayControllers
填充。
我在它的桌子上选择了一个类别。
我在MusicArrayController
上的代码上通过这一行创建了一个新的Music
:
let newAttribute = self.newObject() as! Music
newAttribute.label = "New Music"
self.addObject(newAttribute)
如果在那之后,我检查了我选择的最后一个类别,我看到这个新对象已经在该类别的 toMany NSSet
中。
例子:
-
我在类别表中选择了摇滚。
表 2 显示了该类别下的音乐。
我添加了新音乐。
摇滚乐类别已经在其
toMany
NSSet
上列出了新音乐。
我没有添加任何代码来完成这项任务。
这是 Core Data 的正常行为吗?
【问题讨论】:
【参考方案1】:阵列控制器显示和管理Category
的Music
对象。当 Music
对象与 self.addObject(newAttribute)
添加时,数组控制器会将 Music
对象添加到关系中。这是正常的NSArrayController
行为,无论有无Core Data。
【讨论】:
太棒了。我从来不知道。谢谢。它是如何知道要添加对象关系的,这很神奇,因为我有两个数组控制器。以上是关于macOS Core Data – toOne 新记录是不是在创建时自动分配给 toMany 对象?的主要内容,如果未能解决你的问题,请参考以下文章
Swiftui: MacOS App: Fetching Core Data in ContentView OK,但是如何使用 AppDelegate 的结果呢?