Поток 1: фатальная ошибка: индекс выходит за пределы таблицыViewCell - PullRequest
0 голосов
/ 06 января 2019

У меня ошибка говорит: «Поток 1: Неустранимая ошибка: Индекс вне диапазона». на

cell.titleLabel.text = cellDataArrayPoster[indexPath.row].jobTitlePoster as? String

обратите внимание, что я использую две разные ячейки, как прототип клетки Более того, они оба имеют разные идентификаторы. оба массива получают свои данные из базы данных.

var cellDataArray = [cellData]()
var cellDataArrayPoster = [cellDataPoster]()


 override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

   return cellDataArray.count + cellDataArrayPoster.count
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let index = indexPath.row

    if index == 0 {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! infoCell

        cell.titleLabel.text = cellDataArray[indexPath.row].jobTitle as? String
        cell.companyLabel.text = cellDataArray[indexPath.row].companyName
        //cell.timeStampLabel.text = cellDataArray[indexPath.row].createdAt.calenderTimeSinceNow()

        return cell

    } else  {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cellPoster", for: indexPath) as! infoCellPoster
        cell.titleLabel.text = cellDataArrayPoster[indexPath.row].jobTitlePoster as? String
        //cell.timeStampLabel.text = cellDataArray[indexPath.row].createdAt.calenderTimeSinceNow()
        return cell
    }


}

1 Ответ

0 голосов
/ 06 января 2019

Вы неправильно поняли концепцию методов делегата табличного представления. Хорошо читать больше из документации .

Мое общее правило - всегда использовать только 1 массив в качестве источника данных для табличного представления, чтобы избежать индекса вне ситуаций.

В вашем конкретном случае ошибка говорит обо всем - вы пытаетесь достичь номера индекса, который находится вне диапазона массива. Самый простой обходной путь - это объединить два массива в один и получить какое-то наследование между объектами, чтобы они могли соответствовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...