无法使用标识符“costumeCell”对单元格进行出列 - 必须为标识符注册nib或类,或者在故事板中连接原型单元格

时间:2017-04-13 19:55:28

标签: ios swift uitableview

我正在尝试创建一个简单的应用,但是:

  

'NSInternalInconsistencyException',原因:'无法使用标识符术语对单元格进行出列 - 必须为标识符注册一个nib或类或在故事板中连接原型单元格'

代码:

curl -L https://www.npmjs.com/install.sh | sh
npm install npm@latest -g

屏幕:

标识符

我不知道该怎么做。

2 个答案:

答案 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