MPMediaItemPropertyPersistentID有多独特?将ID列表同步到连接到相同iTunes帐户的另一个设备上时,它是否有效?
我想实现一个iCloud同步播放列表解决方案,它将ID作为列表存储,我需要知道是否可能。
MPMediaItemPropertyPersistentID有多独特?将ID列表同步到连接到相同iTunes帐户的另一个设备上时,它是否有效?
我想实现一个iCloud同步播放列表解决方案,它将ID作为列表存储,我需要知道是否可能。
如果有其他人和我一样通过谷歌搜索到这里:
在我更新iOS设备后,我的音乐应用程序试图使用升级前的persistentIDs时,我确认了middaparka上面所说的。ID已经发生了改变,我无意中听了许多我平时不听的歌曲...
所以我采纳了middaparka的建议,并通过对标题、歌手名、专辑标题和持续时间的哈希值进行异或运算,构造了一个持久键(persistentKey)。在核心数据库初始化期间构建persistentKey将在后期节省时间,避免在“正常操作代码”中获取项目时进行多个字符串比较。
持久键策略对歌曲有效。但是,当我为专辑从标题、艺术家和发行年份生成哈希时,我遇到了一个冲突。
我有两张不同艺术家于1976年发布的同名专辑。当专辑标题和艺术家的哈希值进行异或运算时,它们互相抵消。最终我使用了持续时间而不是艺术家的哈希值,这样做可以解决问题。
我可能会稍后改进生成persistentKeys的算法...