0

我尝试使用以下代码在装有 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 上运行良好。

有人给我小费吗?

谢谢,斯特凡

4

1 回答 1

1

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

MPMediaQuery *query = [MPMediaQuery genresQuery];
for (MPMediaItemCollection *item in [query collections]) {
    NSLog(@"%@", [[item.items firstObject] valueForProperty: MPMediaItemPropertyGenrePersistentID]);
    NSLog(@"%@", [[item.items firstObject] valueForProperty: MPMediaItemPropertyGenre]);
}
于 2014-01-05T19:27:03.550 回答