Причина «NSInternalInconsistencyException»: «Не удалось загрузить NIB в комплекте» при снятии очереди с ячейки таблицы - PullRequest
0 голосов
/ 26 декабря 2018

Понятия не имею, почему я получаю эту ошибку, и я попытался найти другие ответы, но не смог найти решение.

Код, о котором идет речь:

override func viewDidLoad() {
    super.viewDidLoad()

    messagesTableView?.register(UINib.init(nibName: "messageTableViewCell", bundle: nil), forCellReuseIdentifier: "messageTableViewCell")

    messagesTableView.delegate = self;
    messagesTableView.dataSource = self;
    dataSrc.delegate = self


}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


    if let cell = tableView.dequeueReusableCell(withIdentifier: "messageTableViewCell", for: indexPath) as? MessagesTableViewCell {

        cell.configureWithItem(item: dataArray[indexPath.item])

        return cell
    }
    return UITableViewCell()
}

Когда вызывается tableView.dequeueReusableCell, я получаю сообщение об ошибке.Я также удостоверился, что идентификатор для ячейки установлен в «messageTableViewCell»

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Убедитесь, что вы создали nib/xib файл с именем MessageTableViewCell, затем зарегистрируйте файл пера MessageTableViewCell,

let nib = UINib(nibName: "MessageTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "messageTableViewCell")
0 голосов
/ 26 декабря 2018

Когда вы инициализируете UINib, в качестве параметра nibName вам необходимо передать имя файла

enter image description here

UINib(nibName: "TableViewCell", bundle: nil)

, поэтомув вашем случае я предполагаю, что ваш файл назван так же, как ваш класс MessagesTableViewCell

messagesTableView?.register(UINib(nibName: "MessagesTableViewCell", bundle: nil), forCellReuseIdentifier: "messageTableViewCell")
...