'NSInternalInconsistencyException' 原因:'Could not load NIB in bundle' 将 tableview 单元格出列时
'NSInternalInconsistencyException' reason: 'Could not load NIB in bundle' when dequeuing tableview cell
我不知道为什么会收到此错误,我尝试查看其他答案,但找不到解决方案。
有问题的代码:
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"
当您初始化 UINib
时,作为 nibName
参数,您必须传递文件名
UINib(nibName: "TableViewCell", bundle: nil)
所以在你的情况下,我想你的文件与你的文件同名 class MessagesTableViewCell
messagesTableView?.register(UINib(nibName: "MessagesTableViewCell", bundle: nil), forCellReuseIdentifier: "messageTableViewCell")
请确保您已创建名为 MessageTableViewCell
的 nib/xib
文件,然后注册 nib 文件 MessageTableViewCell
,
let nib = UINib(nibName: "MessageTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "messageTableViewCell")
我不知道为什么会收到此错误,我尝试查看其他答案,但找不到解决方案。
有问题的代码:
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"
当您初始化 UINib
时,作为 nibName
参数,您必须传递文件名
UINib(nibName: "TableViewCell", bundle: nil)
所以在你的情况下,我想你的文件与你的文件同名 class MessagesTableViewCell
messagesTableView?.register(UINib(nibName: "MessagesTableViewCell", bundle: nil), forCellReuseIdentifier: "messageTableViewCell")
请确保您已创建名为 MessageTableViewCell
的 nib/xib
文件,然后注册 nib 文件 MessageTableViewCell
,
let nib = UINib(nibName: "MessageTableViewCell", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "messageTableViewCell")