【发布时间】:2021-01-30 20:05:36
【问题描述】:
我有以下关系:
播放列表可能包含一对多的歌曲,并且 歌曲可能属于一对多播放列表。
我的问题在于获取特定播放列表中歌曲的顺序 - 例如,
- 在播放列表 1 中,顺序可能是 3,
- 在播放列表 2 中,顺序可能为 1,
- 在播放列表 3 中,顺序可能是 5,等等。
此外,播放列表中歌曲的顺序可以更改,因为它们在表格视图中列出。
我现在想跟踪订单。
我尝试了以下方法:
- 为 Song 实体创建一个新属性“PlaylistOrders” - 使用代表订单的 NSSet(播放列表的订单和 ManagedObjectId),
- 创建一个名为“PlaylistOrders”的新实体并将其连接到“Song”。此新实体还包含一个可转换的 objectId (ManagedObjectId)。
这两种方法似乎都非常容易出错 - 此外,我经常收到警告,例如“'NSKeyedUnarchiveFromData' 不应用于取消归档,将在未来的版本中删除”。
有没有更好、更复杂的方法在不同的播放列表中存储和检索歌曲的顺序?
【问题讨论】:
-
一个播放列表可能包含许多歌曲 - 因此:在这种情况下,我应该在播放列表中存储多个订单,代表歌曲 1 ...歌曲 n - 对我来说,这没有意义。或者我拿一本字典——但正如我上面提到的,这会引起很多麻烦
标签: ios swift core-data nsmanagedobjectcontext nsmanagedobjectid