我尝试使用此代码在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]);
}
问题是,此代码获得了正确的流派计数,但没有正确的名称。 一些名称和身份证明显示两次,其他一些则丢失。
该代码在iOS 6.1.3的iPod上运行良好。
有人为我提供tipp吗?
谢谢, 斯蒂芬
答案 0 :(得分:1)
在处理集合的representativeItem
时似乎存在错误。例如, Jazz , Jazz-Fusion 和 Jazz-Rock 等类型在查询时都会以 Jazz 的形式返回类型标题属性的representativeItem
。要解决此问题,请获取firstObject
数组的items
以获取正确的信息:
MPMediaQuery *query = [MPMediaQuery genresQuery];
for (MPMediaItemCollection *item in [query collections]) {
NSLog(@"%@", [[item.items firstObject] valueForProperty: MPMediaItemPropertyGenrePersistentID]);
NSLog(@"%@", [[item.items firstObject] valueForProperty: MPMediaItemPropertyGenre]);
}