0

我不知道为什么会收到此错误,并且我尝试查看其他答案,但找不到解决方案。

有问题的代码:

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”

4

2 回答 2

1

请确保您已经创建了一个nib/xib名为 的文件MessageTableViewCell,然后注册 nib 文件MessageTableViewCell

let nib = UINib(nibName: "MessageTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "messageTableViewCell")
于 2018-12-26T19:19:23.903 回答
0

初始化时,必须传递文件名UINib作为参数nibName

在此处输入图像描述

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

所以在你的情况下,我想你的文件与你的班级命名相同MessagesTableViewCell

messagesTableView?.register(UINib(nibName: "MessagesTableViewCell", bundle: nil), forCellReuseIdentifier: "messageTableViewCell")
于 2018-12-26T19:15:11.287 回答