ios - 多对多关系

标签 ios objective-c core-data entity-relationship

我有以下具有多对多关系的实体。

enter image description here

我正在制作一个小型播放列表应用程序,其中名为 Entity 的实体用于播放列表,而 songs 实体用于歌曲。目前我有一个 View Controller ,您可以在其中将播放列表添加到实体,还有一个 View Controller ,您可以在其中将歌曲添加到歌曲实体。问题是所有视频都显示在每个播放列表中。我怎样才能在这两个实体之间建立这种关系?

我是否需要在包含播放列表 ID 的歌曲中创建一个属性?或者实体如何知道哪首歌属于哪个实体对象?

最佳答案

首先,我建议为实体选择稍微不同的名称 和关系,特别是实体的单数形式(歌曲、播放列表) 名称,以及目的地的复数形式(歌曲、播放列表)用于一对多关系:

enter image description here

现在对象通过设置它们之间的关系被“连接起来”。 假设您有一首歌和一个播放列表:

Song *songA;
Playlist *playlistB;

现在你可以调用

[songA addPlaylistsObject:playlistB]; // (1)

[playlistB addSongsObject:songA]; // (2)

在这两个对象之间建立关系。 你叫哪个都没有关系,因为“歌曲”和“播放列表” 是反向关系songA 添加到playlistB.songs, 并且 playlistB 被添加到 songA.playlists

关于ios - 多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21148741/

相关文章:

ios - Swift:条件编译标志必须是有效的 Swift 标识符

iphone - 每次缩放后重绘 UIScrollView 内容

ios ScrollView 清空空白区域不滚动

swift - 无法保存到核心数据中

objective-c - 核心数据 NSManagedObject isFault insideprepareForDeletion

ios - 在 iOS 中连接两个音频文件(一个接一个)

objective-c - 从 cocoa 应用程序中查找软件包安装程序(如 DivX Installer.package)是否正在运行

ios - 使用适用于 ios 的 google map sdk 检查 google 街景的可用性

iphone - 使用谓词对核心数据进行排序以消除重复

ios - 使用核心 Action 确定iOS学位程度的读数