Как показать изображение в ячейках?

У меня есть TableViewController и AudioPlayerViewController. В TableViewController я хочу знать, сколько треков было прослушано. И показать изображение только в прослушанных ячейках. Чтобы определить, что трек прослушан, я использую этот код в AudioPlayerViewController:

func audioPlayerDidFinishPlaying(_ audioPlayer: AVAudioPlayer, successfully flag: Bool) {
     UserDefaults.standard.set( arrayOfListened(trackIndex), forKey: "key") 
}

А чтобы показать изображение в ячейках в TableViewController:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: String(format: "cell", indexPath.row), for: indexPath) as! MasterViewCell

    if indexPath.row == arrayOfListened[indexPath.row] {
        cell.cellStatusImage.image = UIImage(named: "statusDone.png")
    }
                
}

Но мое приложение вылетает - index out of range. Как это исправить?


Ответы (1 шт):

Автор решения: Владимир Ковальчук

Вам, при генерации ячейки, сначала необходимо получить сохранённый массив из UserDefaults, а затем поменять условие отображения картинки

if arrayOfListened.contains(indexPath.row)...

→ Ссылка