1

に関してMPMediaItem、複数のアイテム/メディア アイテム コレクション内のアイテムのプロパティを取得する方法はありvalueForProperty:ますか?各アイテムを個別に呼び出すよりも効率的ですか?

は承知してenumerateValuesForProperties:usingBlock:いますが、これにより、1 つのメディア アイテムの複数のプロパティをバッチで取得できます。複数のメディア アイテムの 1 つのプロパティに興味があります。

4

1 に答える 1

0

残念ながら、実際には一度に1つずつ実行する必要がありますが、これを実行するための実用的な方法がいくつかあります。たとえば、値を配列にロードする場合は、次の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]];
}];
于 2012-09-23T12:39:09.217 に答える