在 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 上获取流派列表的主要内容,如果未能解决你的问题,请参考以下文章