MPMediaQuery.artistsQuery() для отображения в группах

Я знаю, что я очень скучаю по чему-то очень простому здесь, но я застрял. Почему следующий код создает представление таблицы каждого исполнителя трека, а не исполнителей, перечисленных в группах (то есть, почему каждый исполнитель перечисляется 20 с чем-то раз вместо того, чтобы быть сгруппированными так, чтобы каждый исполнитель был указан только один раз)? Я пробовал как коллекции, так и версии предметов, упомянутые ниже. Что я делаю неправильно? Как это исправить? Любая помощь приветствуется. Заранее спасибо...

var tableData = MPMediaQuery.artistsQuery()
override func viewDidLoad() {
    super.viewDidLoad()

self.artistTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
        }

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: MPMediaItem = tableData.items![indexPath.row]
    //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 ответ

Решение

Я собираюсь ответить на свой вопрос...

Проблема была здесь:

let artist: MPMediaItemCollection = tableData.collections![indexPath.row]
if artist.valueForProperty(MPMediaItemPropertyArtist) == nil {

и здесь ответили: как получить значение исполнителя из MPMediaItemCollection

Благодаря Уэсу...

Другие вопросы по тегам