我尝试使用以下代码获取装有iOS 5的iPhone 7.0.3上的流派列表:
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上运行良好。
有人为我打赏吗?
谢谢斯特凡
处理集合representativeItem
时似乎存在错误。例如,在查询流派标题属性的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]);
}