关于MPMediaItem
,有没有办法为多个项目/媒体项目集合中的项目获取属性,这比valueForProperty:
单独调用每个项目更有效?
我知道enumerateValuesForProperties:usingBlock:
,但这允许批量获取单个媒体项目的多个属性。我对多个媒体项的单个属性感兴趣。
关于MPMediaItem
,有没有办法为多个项目/媒体项目集合中的项目获取属性,这比valueForProperty:
单独调用每个项目更有效?
我知道enumerateValuesForProperties:usingBlock:
,但这允许批量获取单个媒体项目的多个属性。我对多个媒体项的单个属性感兴趣。
不幸的是,您确实必须一次做一个,但有几种实用的方法可以做到这一点。例如,如果要将值加载到数组中,可以使用这个 for-in 循环:
for (MPMediaItem *item in myCollection.items) {
[someMutableArray addObject:[item valueForProperty:MPMediaItemPropertyTitle]];
}
或者,如果您想使用块枚举,这里有一个示例:
[myCollection.items enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
[someMutableArray addObject:[(MPMediaItem *)[myCollection.items objectAtIndex:idx] valueForProperty:MPMediaItemPropertyTitle]];
}];