2016-07-27 5 views
-1

Ich bin neu bei Swift! Ich versuche einen grundlegenden Musik-Player zu schreiben.Swift: Wie bekomme ich die Songtitel auf einem Album?

So habe ich die Liste der Alben von 1 Artist erfolgreich bekommen. Der Künstlername wurde an diesen 2nd View Controller übergeben, indem der Titel im 1st View Controller gesetzt wurde.

let qryAlbums = MPMediaQuery.albumsQuery() 

let predicateByArtist = MPMediaPropertyPredicate(value: self.title, forProperty: MPMediaItemPropertyAlbumArtist) 
qryAlbums.filterPredicates = NSSet(object: predicateByArtist) as? Set<MPMediaPredicate> 

let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "albumIdCell") 
let rowItem = qryAlbums.collections![indexPath.row] 
cell.textLabel!.text = rowItem.items[0].albumTitle 

ABER, der folgende, ähnliche Code, funktioniert nicht. Der Name des Albumtitels wurde an diesen 3. View-Controller übergeben, indem der Titel im 2. View-Controller festgelegt wurde.

let qrySongs = MPMediaQuery.songsQuery() 

let predicateByAlbumTitle = MPMediaPropertyPredicate(value: self.title, forProperty: MPMediaItemPropertyTitle) 
qrySongs.filterPredicates = NSSet(object: predicateByAlbumTitle) as? Set<MPMediaPredicate> 

let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "songIdCell") 
let rowItem = qrySongs.collections![indexPath.row] 
cell.textLabel!.text = rowItem.items[0].title 

Vielen Dank im Voraus !!!

+0

Was genau läuft bei der Songabfrage falsch? Werden keine Songs zurückgegeben? – Carter

+0

In der Alben-VC erhalte ich die Liste aller Alben nach dem ausgewählten Künstler (sauber in die Zellen der Tabellenansicht eingefügt). In den Songs VC bekomme ich 1 Albumtitel, eigentlich ist es der Titel des ausgewählten Albums und sonst nichts. – James64

+0

Es gefunden. Musste die Zeile in den Songs ändernQuery zu: lassen PrädikatByAlbumTitle = MPMediaPropertyPredicate (Wert: self.title, forProperty: MPMediaItemPropertyAlbumTitle) – James64

Antwort

-1

Mit MPMediaItemPropertyAlbumTitle (wie in den Kommentaren angegeben), löste es. Vielen Dank!