#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.» из значения массива