在 iOS7 上获取流派列表

Posted

技术标签:

【中文标题】在 iOS7 上获取流派列表【英文标题】:Getting Genre list on iOS7 【发布时间】:2013-10-30 20:08:32 【问题描述】:

我尝试使用以下代码在装有 ios 7.0.3 的 iPhone 5S 上获取流派列表:

    MPMediaQuery *query = [MPMediaQuery genresQuery];
    for (MPMediaItemCollection *item in [query collections]) 
        NSLog(@"%@", [[item representativeItem] valueForProperty: MPMediaItemPropertyGenrePersistentID]);
        NSLog(@"%@", [[item representativeItem] valueForProperty: MPMediaItemPropertyGenre]);
    

问题是,这段代码得到了正确的类型计数,但没有得到正确的名称。 一些名称和 ID 显示了两次,而另一些则丢失了。

代码在装有 iOS 6.1.3 的 iPod 上运行良好。

有人给我小费吗?

谢谢, 斯蒂芬

【问题讨论】:

【参考方案1】:

在处理集合的representativeItem 时似乎存在错误。例如,在查询时,JazzJazz-FusionJazz-Rock 流派都返回为 Jazz流派标题属性的representativeItem。作为一种解决方法,获取items 数组的firstObject 以获得正确的信息:

MPMediaQuery *query = [MPMediaQuery genresQuery];
for (MPMediaItemCollection *item in [query collections]) 
    NSLog(@"%@", [[item.items firstObject] valueForProperty: MPMediaItemPropertyGenrePersistentID]);
    NSLog(@"%@", [[item.items firstObject] valueForProperty: MPMediaItemPropertyGenre]);

【讨论】:

以上是关于在 iOS7 上获取流派列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EF 5 存储枚举列表

如何按游戏分组并选择每个游戏的流派列表[重复]

Chinook 数据库-LINQ。我有一个播放列表,我需要写下她的名字、歌曲数量和她的主要流派(该播放列表中的歌曲最多。)

Spotify SDK 流派总是空的?

iOS 8 Photos 框架:使用 iOS8 获取所有相册的列表

使用 NSFetchedResultsControllers 遍历一对多关系