为多个MPMediaItem批量获取属性

时间:2012-09-23 11:11:42

标签: ios mpmediaitem mpmediaitemcollection

关于MPMediaItem,有没有办法为媒体项目集合中的项目获取多个项目的属性,这比分别在每个项目上调用valueForProperty:更有效?“ p>

我知道enumerateValuesForProperties:usingBlock:,但这允许批量获取单个媒体项的多个属性。我对多种媒体项目的单一属性感兴趣。

1 个答案:

答案 0 :(得分:0)

不幸的是,你真的必须一次做一个,但有几种实用的方法可以做到这一点。例如,如果要将值加载到数组中,可以使用此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]];
}];