неожиданно обнаружено нуль при развертывании необязательного значения в SWIFT 3.0

#ios #uitableview #swift3

#iOS #uitableview #swift3

Вопрос:

Я использую tableview с пользовательской ячейкой в swift 3.0. Я беру textview и предоставляю выход из класса ячейки tabelview и получаю доступ к методу делегирования tableview, но он показывает мне ошибку, как неожиданно найдено nil при развертывании необязательного значения

вот мой код. Запись — это массив

Проверьте этот скриншот. К вашему сведению, я взял новый пользовательский класс и предоставил ему выход, но возникла та же проблема

Скриншот

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



func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    tableView.register(TableViewCell.self, forCellReuseIdentifier: "TableViewCell")
   let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell

  if let str = record.object(at: indexPath.row) as? String {
        print(cell.txtview)

            cell.txtview.text = str  

    }


    return cell
}
 

Он отлично работает в статической ячейке, но в пользовательской ячейке он показывает мне ошибку.

cell.textview не берется из пользовательской ячейки

изображение

Пожалуйста, помогите мне с этим

Комментарии:

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

2. Согласно моему коду, я присвоил ему тот же класс и тот же идентификатор. Но идентификатор задается в виде строки, так что это не проблема

3. Нет @JAL Его в siwft 3.0, если он в swift 2.0 или ниже, то я решил его

4. Прочтите связанный дубликат. Это независимая языковая версия Swift.

5. @JAL вы не можете задать свой дублирующий вопрос, потому что в swift 2.0 и swift 3.0 много изменений, и я. Нет, этот вопрос не является пользовательской ячейкой, а ячейкой по умолчанию в таблице.

Ответ №1:

Пожалуйста, попробуйте следующую строку, не уверенную в этом:

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        tableView.register(TableViewCell.self, forCellReuseIdentifier: "TableViewCell")
         let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell

        if let title = record.object(at: indexPath.row) as? String {
                cell.textview.text = title
        } else {
                cell.textview.text = ""
        }

        return cell
}
 

Комментарии:

1. Какой текст вы получили в заголовке? — не могли бы вы, пожалуйста, опубликовать здесь.

2. Я получил следующее: «У меня есть UITextView в пользовательской UITableViewCell. Делегат textview назначается в пользовательском классе tableviewcell.» из значения массива