cellForRowAt: возвращает ноль при смене вкладок - PullRequest
2 голосов
/ 14 марта 2020

Я довольно новичок в Swift, и у меня есть проблема, с которой я боролся.

У меня есть ViewController с табличным представлением и этот ViewController, встроенный в TabViewController. Каждый раз, когда я меняю вкладки приложение вылетает, и я предполагаю, что это из метода cellForRowAt: и тот факт, что он возвращает ноль.

Я получаю следующие ошибки:

Неустранимая ошибка: неожиданно обнаружил ноль при неявном развертывании необязательного значения:

И это указывает здесь: tableView.delegate = self

Это код:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self
    DispatchQueue.main.asyncAfter(deadline: .now()+0.3) {
        self.tableView.reloadData()

    }

Я перезагружаю данные после 0.3, потому что в viewDidLoad я получаю JSON с сервера, и требуется время для обработки всех данных

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return dateArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "AlertsNotSolved") as! AlertsNotSolved
    cell.isUserInteractionEnabled = false
    cell.dateLabel.text = dateArray[indexPath.item]
    cell.notValidLabel.text = stateArray[indexPath.item]
    cell.problemNameLabel.text = nameArray[indexPath.item]
    return cell

}

dateArray, stateArray и nameArray - это массивы, которые я заполняю данными из JSON и имеют одинаковое количество элементов.

Есть предложения?

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