2012-09-23 34 views
1

关于MPMediaItem,是否有办法为多个项目/媒体项目集合中的项目获取属性,这比分别在每个项目上调用valueForProperty:更有效?为多个MPMediaItems批量获取属性

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

回答

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]]; 
}];