我正在尝试创建一个简单的应用,但是:
'NSInternalInconsistencyException',原因:'无法使用标识符术语对单元格进行出列 - 必须为标识符注册一个nib或类或在故事板中连接原型单元格'
代码:
curl -L https://www.npmjs.com/install.sh | sh
npm install npm@latest -g
屏幕:
类
标识符
我不知道该怎么做。
答案 0 :(得分:3)
您可能需要注册您的手机。它看起来像这样。
如果您在代码中使用单元格类:
tableView.register(MyTableViewCell.self, forCellReuseIdentifier: "Cell")
如果你正在使用带有笔尖的单元格:
let nib = UINib(nibName: "MyTableViewCellNibFile", bundle: nil)
tableView.register(nib, forCellReuseIdentifier: "Cell")
如果您正在使用故事板,则需要确保原型单元设置正确。这个答案实际上定义得很好https://stackoverflow.com/a/14939860/563381
https://developer.apple.com/reference/uikit/uitableview/1614937-register
答案 1 :(得分:0)
我希望您尝试从XIB加载原型单元格。如方法名称所示,出列方法,只是将单元格出列,如果它已经在内存中创建并可用。你必须在出列时没有找到适合你的单元时创建你的单元格,请使用下面的方法,这就是我通常用来加载原型单元格,你不需要在这里做registerclass / registernib,
var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as? CostumeCellView
if cell == nil {
let topLevelObjects = NSBundle.mainBundle().loadNibNamed("MyCellNibFile", owner: self, options: nil)
for entry in topLevelObjects {
if entry.reuseIdentifier == "Cell" {
cell = entry as? CostumeCellView
}
}
}
cell.textLabel?.text = titles[indexPath.row]
return cell