Как извлечь значение художника из MPMediaItemCollection
Почему следующий результат дает табличное представление, полное "Исполнителя" вместо табличного представления, полного фактических имен художника? Где я неправ? Как я могу извлечь ценность художника из коллекции? Вся помощь приветствуется...
var tableData = MPMediaQuery.artistsQuery()
override func viewDidLoad() {
super.viewDidLoad()
self.artistTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableData.groupingType = MPMediaGrouping.Artist
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.tableData.collections!.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = self.artistTableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
let artist: MPMediaItemCollection = tableData.collections![indexPath.row]
if artist.valueForProperty(MPMediaItemPropertyArtist) == nil {
cell.textLabel?.text = "Artist" as String
} else {
let artistName = artist.valueForProperty(MPMediaItemPropertyArtist) as! NSString
cell.textLabel?.text = artistName as String
}
return cell
}
1 ответ
Решение
Вы получаете доступ к свойствам MPMediaItemCollection
через это representativeItem
, Вы выбираете имя художника так:
let artist : MPMediaItemCollection = tableData.collections![indexPath.row]
let artistName = artist.representativeItem.artist ?? "Unknown Artist"
Хотя, будь я на твоем месте, я бы не развернул насильно tableData.collections
потому что, если у вашего пользователя пустая библиотека iTunes, в этой строке произойдет сбой приложения.