我正在开发一个基于 Core Data 的应用程序(我以前使用 sqlite,但这次我想学习一些新东西)并且我被这个关系问题困住了:
我有歌曲和播放列表,我想将它们与订单号相关联,所以播放列表可以是这样的:
- "Playlist A"
1. Song A
2. Song C
3. Song B
- "Playlist B"
1. Song C
2. Song A
3. Song B
4. Song F
5. Song E
这是一个明显的多对多案例,(我知道这不是标准的)订单号存储在相关表中;在 sql 中我会这样做
Table "Songs" (id, name, ecc..)
Table "Playlists" (id,name, ecc..)
Table "PlaylistSongs" (playlist_id,song_id,position)
In Core Data i did:
Entity "Song"
Entity "Playlist"
Entity "SongInPlaylist"
with this relation:
Song <---->> SongInPlaylist
Playlist <----->> SongInPlaylist
但现在我不知道如何:
a) 将歌曲放入播放列表中的特定索引处 b) 以正确的顺序获取播放列表中的歌曲 c) 修改播放列表顺序。
有人能帮帮我吗?
最佳答案
似乎 SongInPlaylist 需要一个 position 属性。然后,您可以为 PlayList 提供一些方法以在索引处插入、从一个索引移动到另一个索引或在一个索引处移除,这将固定其他 SongInPlaylist 实体的位置值。
关于objective-c - 核心数据 : attributes in many-to-many relationships,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655472/