2015-12-22 3 views
-2

J'ai écrit la fonction suivante qui lit la liste des éléments multimédias dans mon répertoire iTunes et renvoie les fichiers musicaux. Je dois retourner les "titres de chanson" mais quand je l'exécute les articles retournés sont dans un format inconnu. Je suis assez sûr que j'ai besoin de les passer à travers un filtre de propriété ou d'utiliser une conversion pour obtenir les noms réels correctement. À la fin je veux sortir le contenu dans un tableau de chaînes. Je cours seulement la boucle quatre fois dans la capture d'écran jointe. Quelqu'un peut-il me signaler une conversion manquante? Il semble que la sortie est au format hexadécimal mais pas claire sur ce point.Élément multimédia du répertoire iTunes retourné sous un format inconnu

 class func readMusicFiles() -> NSMutableArray { 
    //var songDecoded:[NSMutableArray] 
    let result = NSMutableArray() 
    let allSongsQuery:MPMediaQuery = MPMediaQuery.songsQuery(); 
    let tempArray:NSArray = allSongsQuery.items!; 
    for item:AnyObject in tempArray { 
     if (item is MPMediaItem) { 
      let temp = item as! MPMediaItem; 
      if (temp.mediaType != MPMediaType.Music) { 
       continue; 
      } 
      result.addObject(item); 
     } 
    } 
     print(result) 
     return result 
} 

}

La sortie se présente comme suit

enter image description here

+0

Quel est le problème? Vous avez demandé un tableau de MPMediaItems et c'est exactement ce que vous avez. – matt

+0

vous avez un point. Je l'ai corrigé – Sophman

+1

le problème que j'ai est la sortie est au format hexadécimal ou quel que soit le format 0x1355e4d90 est – Sophman

Répondre

1

Le "Hex" est pas un "format"; c'est simplement une indication de l'adresse mémoire de l'objet. Ignorez-le.

Vous avez vos éléments multimédias (chansons dans ce cas). Maintenant, au lieu de dire print(result), demandez leurs titres:

for song in result { 
    print(song.title) 
} 

Ou, pour faire un nouveau tableau:

let titles = result.map {$0.title} 

(Aussi, ne déclarez pas votre fonction pour retourner un NSMutableArray C'est un cacao. Essayez de vous en tenir aux tableaux Swift, par exemple, si vous voulez vous retrouver avec un tableau de titres, ce sont des chaînes, alors renvoyez un [String].)

+0

Et voir mon livre et son exemple de code pour beaucoup d'exemples et de discussion: https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/bk2ch16p678mediaQuery/ch29p946mediaQuery/ViewController.swift – matt

+0

merci! Je l'ai maintenant. Cela fait parfaitement sens .. J'apprécie votre aide matt !! – Sophman