Я создал два объекта UITableViewCell (FriendsCell, AddFriendsCell), и имею следующий код:Невозможно из очереди ячейки с ошибкой идентификатора, несмотря на правильно определили ячейку
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == self.selectedFriends.count {
let cell = tableView.dequeueReusableCell(withIdentifier: "AddFriendsCell", for: indexPath) as! AddFriendsCell
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "FriendsCell", for: indexPath) as! FriendsCell
...
AddFriendsCell есть кнопка, при нажатии, должна SEGUE к другому контроллеру просмотра. Однако, при нажатии возвращает эту хорошо документированную ошибку:
Terminating app due to uncaught exception 'NSInternalInconsistencyException',
reason: 'unable to dequeue a cell with
identifier AddFriendsCell - must register a nib or a class for the
identifier or connect a prototype cell in a storyboard'
*** First throw call stack:
Я не могу понять, почему эта ошибка возникает, когда соответствующий прототип ячейка очень четко определена как «AddFriendsCell» в это раскадровке настройки и типа класса AddFriendsCell (класс UITableViewCell)
Когда я перейти первую строку с dequeueReusableCell:
tableview.register(AddFriendsCell, forCellReuseIdentifier: "AddFriendsCell")
в результате получается во время выполнения он производит пустую ячейку вместо ранее правильно отформатированный AddTableCell.
Пожалуйста, помогите мне понять, почему эта ошибка возникает при нажатии этой кнопки в приложении AddFriendsCell и как ее исправить.
Вы говорите, что вы правильно установить класс ячейки прототипа в раскадровке. В вашей раскадровке вы также установили свой идентификатор? – Larme
Действительно, класс - это AddFriendsCell, а идентификатор - «AddFriendsCell» – Legatro