Я хочу показать 25 песен, которые у меня есть в моей библиотеке. Это мой код:Неустранимая ошибка: Индекс за пределами допустимого диапазона
var allSongsArray: [MPMediaItem] = []
let songsQuery = MPMediaQuery.songsQuery()
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 25 //allSongsArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell")
let items = allSongsArray[indexPath.row]
cell?.textLabel?.text = items.title
cell?.detailTextLabel?.text = items.artist
cell?.imageView?.image = items.artwork?.imageWithSize(imageSize)
return cell!
}
Когда я запускаю это, он выходит из строя, потому что:
fatal error: Index out of range
Я попытался изменить numberOfRowsInSection
к allSongsArray.count
, но он заканчивается с той же ошибкой.
Вы должны обязательно вернуться 'allSongsArray.count', а не буквальное числа; перед выполнением запроса массив будет содержать 0 элементов. Какой индекс вы пытаетесь получить, когда возникает исключение? – Paulw11
Это, безусловно, будет сбой с 25 жестко закодированными, как количество строк, так как ваш массив объявлен пустым. Я сомневаюсь, что он сработает с 'allSongsArray.count', но он ничего не покажет ... – Grimxn
О да, вы правы. Он ничего не показывает. Как я могу показать 25 песен? @Grimxn –