2017-01-15 1 views
2

Je voudrais afficher la liste des chansons dans une playlist, dans l'ordre dans lequel elles ont été créées. Le code ci-dessous, renvoie la liste dans l'ordre alphabétique que je ne veux pas. Merci d'avance pour toute aide que vous pourriez avoir. J'utilise Xcode 7.3.1.En utilisant iOS et Swift, comment obtenir la liste des chansons dans une liste de lecture dans leur ordre naturel?

var qrySongs = MPMediaQuery() 
var selectedPlaylistTitle: String! // Set elsewhere in the code 
let predicateByPlaylistName = MPMediaPropertyPredicate(value: selectedPlaylistTitle, forProperty: MPMediaPlaylistPropertyName) 
qrySongs = MPMediaQuery.songsQuery() 
qrySongs.addFilterPredicate(predicateByPlaylistName) 
+0

Je pense que c'est MPMediaItemPropertyPersistentID. – shallowThought

+0

Merci de votre aide. Je ne suis pas sûr de savoir comment je pourrais utiliser l'idée si. Je connais le selectedPlaylistTitle. Je pourrais trouver le PersistentID de ce titre de playlist, et l'utiliser dans le MPMediaPropertyPredicate existant. Mais je ne suis pas sûr de savoir pourquoi le résultat serait différent. C'est comme si je devais trier la liste d'une manière différente. Chaque chanson de la liste de lecture a un identificateur PersistentID, mais je ne peux pas les trier numériquement. Je suppose que je suis surpris que je suis actuellement retourné une liste dans l'ordre alphabétique. – James64

+0

J'ai essayé ceci: let predicateByPlaylistPersistentID = MPMediaPropertyPredicate (valeur: NSNumber (unsignedLongLong: selectedPlaylistPersistentID), forProperty: MPMediaItemPropertyPersistentID), mais cela n'a pas fonctionné. – James64

Répondre

2

Problème résolu. La liste est dans le bon ordre. Cela avait à voir avec comment je remplissais ma table après la requête. Une boucle de débogage contenant: print (qrySongs.collections! [I] .items [0] .title), génère une liste alphabétique. Une boucle de débogage contenant: print (qrySongs.items! [0] .title), produit une liste dans l'ordre correct de la playlist (telle qu'elle apparaît dans iTunes). C'est mon utilisation des collections! lorsque je remplis la cellule, la liste est alphabétique. Je vais devoir faire le changement dans la façon dont je remplis la cellule.