UITableView падает при прокрутке - PullRequest
0 голосов
/ 05 июня 2018

Я уже читал подобный вопрос, но все еще не могу решить.У меня UITableView, который вылетает в функции cellForRowAt, когда он прокручивается (быстро).Авария происходит не в определенной точке таблицы, а случайно.Это ошибка:

Тема 1: Фатальная ошибка: Индекс выходит за пределы диапазона

Это мой cellForRowAt:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = "menuCell"
    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? MenuTableCell
    return self.setMenuCell(cell: cell, indexPath: indexPath)
}

setMenuCell - это:

private func setMenuCell(cell: MenuTableCell?, indexPath: IndexPath) -> MenuTableCell {
    print(indexPath.row, self.menuManager.menusCount)
    cell?.cliccaPerInfoLabel.text = LocalizedStrings.otherDishes
    cell?.altriPiattiLabel.isHidden = !((self.menuManager.getMenu(index: indexPath.row).getDishes().count) > 3)
    cell?.piatto3Label.isHidden = !((self.menuManager.getMenu(index: indexPath.row).getDishes().count) >= 3)
    cell?.numeroMenuLabel.text = "Menu \(indexPath.row+1)"
    cell?.numeroPiattiLabel.text = String(format: LocalizedStrings.numberOfDishes, (self.menuManager.getMenu(index: indexPath.row).getDishes().count))
    cell?.piatto1Label.text = String(format: LocalizedStrings.dishNumber, 1, (self.menuManager.getMenu(index: indexPath.row).getDishes()[0].getDescription()))
    cell?.piatto2Label.text = String(format: LocalizedStrings.dishNumber, 2, (self.menuManager.getMenu(index: indexPath.row).getDishes()[1].getDescription()))
    return cell!
    }

self.menuManager - это объект, который следит за меню.Не могу понять, что не так.Заранее спасибо за помощь!

Обновление

Это моя numberOfRowsInSection функция:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.menuManager.menusCount
}

1 Ответ

0 голосов
/ 05 июня 2018

Это классическая проблема читателей-писателей.Я думаю, вы должны сделать объект, к которому обращаются menuManager.menusCount, menuManager.getMenu и т. Д., Потокобезопасным.

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