2012-11-06 3 views
7

Ich verwende die Apple Media Player Framework in meiner Anwendung. Um Artikel zu holen, verwende ich die MPMediaQuery wie in ihren Dokumenten beschrieben. Das funktioniert gut, aber wenn ich die vordefinierte Abfrage zum Abrufen aller Künstler verwende, erhalte ich doppelte Einträge für einige Künstler.MPMediaQuery artistsQuery gibt Duplikate zurück

Kann jemand erklären, warum es Duplikate gibt? Wie unterdrücke ich sie?

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

(Und nein es gibt keine Fehler oder Unterschiede in dem Gehäuse im Namen des Künstlers!)

+0

Für den Anfang könnte es einige Meta sein, die Duplizierung verursacht. Um dies zu bestätigen, wie wäre es mit dem Erstellen eines NSSet mit dem NSArray, das automatisch alle Duplikate entfernt? 'NSSet * uniqueArtists = [NSSet setWithArray: Sammlungen];'. Überprüfen Sie, ob dadurch die Duplikate entfernt werden. Ansonsten muss es etwas geben, das die Künstler trotz gleichem Künstlernamen kopieren lässt. –

+0

Schlechte das ist nicht möglich, da ich auch die Abschnitte Funktion von MPMediaQuery verwenden möchte. Ja, aber es wäre interessant herauszufinden, welche Art von Metadaten sie dupliziert und wie man sie verhindert. – miho

+0

Siehst du die gleichen Duplikate in der Musik-App im Künstler-Tab? – Felix

Antwort

4

Ich habe bemerkt, dass dies nur dann auftritt, wenn es Alben mit mehreren Künstlern .

Statt nur [MPMediaQuery artistQuery] die folgenden vorgibt dieses Verhalten:

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