2012-11-06 5 views
7

私のアプリケーションでApple Media Player Frameworkを使用しています。アイテムを取得するには、ドキュメントに記載されているようにMPMediaQueryを使用しています。どちらもうまくいきますが、あらかじめ定義されたクエリを使用してすべてのアーティストを取得するとき、私は少数のアーティストのために重複したエントリを取得します。MPMediaQuery artistsQuery returns duplicates

重複がある理由を誰かが説明できますか?どのように私はそれらを抑制する?

NSArray *collections = [[MPMediaQuery artistsQuery] collections]; 

(そして、いや、アーティストの名前で筐体のいずれかのタイプミスか違いがありません!)

+0

手始めに、重複が発生し、いくつかのメタがあるかもしれません。しかし、これを確認するためにNSArrayを使用してNSSetを作成すると、自動的にすべての重複が削除されますか? 'NSSet * uniqueArtists = [NSSet setWithArray:collections];'。これが重複を削除するかどうかを確認してください。それ以外の場合は、同じアーティスト名にもかかわらずアーティストが重複するようなものがなければなりません。 –

+0

MPMediaQueryのセクション機能を使用したいので、これは不可能です。はい、しかし、どのような種類のメタデータがそれらを複製し、どのように防止するかを知ることは興味深いでしょう。 – miho

+0

アーティストタブの音楽アプリで重複している同じアーティストが表示されますか? – Felix

答えて

4

私は、これは、複数のアーティストとアルバムがある場合にのみ発生していることに気付きました。

だけではなく[MPMediaQuery artistQuery]

、以下のふりこの動作は:

MPMediaQuery *artistsQuery = [MPMediaQuery artistsQuery]; 
artistsQuery.groupingType = MPMediaGroupingAlbumArtist; 
NSArray *collections = [artistQuery collection];