我是Swift UI的新手,并且第一次与CoreData和CloudKit一起工作也很不错。我的很多问题都可以通过现有教程来回答,或者类似的已经回答过的问题。但是我找不到CoreData中多对多关系的绝佳资源。
在我的项目中,用户可以通过按一个按钮来保存标记/时间戳,这会触发将数据保存在CoreData中的功能。在用户可以保存时间戳的情况下,通过按一下按钮完成录制时,将记录保存到CoreData的功能就会结束。我的目的是,记录将保存并包括所有已创建和已保存的标记/时间戳,因此用户可以在项目/记录中单击其历史记录,并获取此记录的所有标记/时间戳。
到那时,我可以保存并创建标记并进行记录,但不能将它们彼此链接。
我如何最简单的方法-与多对多的关系?我的代码中多对多关系如何工作?
我非常感谢您的帮助和想法!
罗伯特 PS:在phto上,您可以看到我已经尝试创建Relationships,但是无法使用函数创建它们。
答案 0 :(得分:0)
如果我理解正确,那么您的UsedMarker
代表使用特定MarkerItem
的特定timestamp
和特定Recording
。因此,我将从UsedMarker
到Recording
的关系建模为一对一。
根据您当前的模型,UsedMarker
具有颜色,名称和图标的属性,您将其描述为来自MarkerItem
实体。我会避免这种重复,而将这些属性替换为从UsedMarker
到MarkerItem
的一对一关系。
当它们是to-one
时,很容易在代码中定义关系。如果您有一个Recording
对象,例如currentRecording
,并且用户在给定的时间戳上添加了一个特定的MarkerItem
,例如chosenMarker
,则可以创建一个新的{{ 1}}中的分配关系:
UsedMarker