Ios dequeueReusableCellWithIdentifier不';t返回单元

Ios dequeueReusableCellWithIdentifier不';t返回单元,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个静态表,有一个静态部分。其他部分是动态的 我为动态部分创建表部分和表单元。为单元格设置标识符,为其设置自定义类,甚至执行以下操作: self.tableView.registerClass(UncheckedStoreTableViewCell.self, forCellReuseIdentifier: "StoreCell") 如果我没有用代码注册它,那么我会得到: '无法将标识符为StoreCell的单元格出列-必须注册 nib或标识符的类,或连接 故事板' 所以当我使用这个:

我有一个静态表,有一个静态部分。其他部分是动态的

我为动态部分创建表部分和表单元。为单元格设置标识符,为其设置自定义类,甚至执行以下操作:

self.tableView.registerClass(UncheckedStoreTableViewCell.self, forCellReuseIdentifier: "StoreCell")

如果我没有用代码注册它,那么我会得到:

'无法将标识符为StoreCell的单元格出列-必须注册 nib或标识符的类,或连接 故事板'

所以当我使用这个:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    if indexPath.section == 0 {
        return super.tableView(tableView, cellForRowAtIndexPath: indexPath)
    }

    let cell = tableView.dequeueReusableCellWithIdentifier("StoreCell", forIndexPath: indexPath) as! UncheckedStoreTableViewCell

    return cell
}
它起作用了。但如果我试图更改标签:
cell.myLabel.text=“one”
或者只是
print(cell.myLabel)
got

错误的指令


您不需要在代码中注册您的单元格

您已经正确设置了单元格的标识符,但是这还不够。除此之外,您还需要打开单元格的Identity Inspector,并将单元格的类设置为
取消选中StoreTableViewCell
。以下是一幅图像,显示您应在何处进行设置:

如果没有这个步骤,Xcode将无法正确地将您的单元格标识符与您的自定义单元格关联,因为它对它一无所知

  • 您完全可以在静态表视图中使用动态单元格
  • 不要期望静态表视图为您注册单元格的标识符。你自己动手吧
  • 在interface builder中的某个视图的单元类中是否有插座?如果我是你,我就不会期望表视图知道这一点。它将实例化您的cell类,就这样。不设插座。我认为这是相关的:

  • 顺便说一句,如果您已经为单元格定义了一个自定义的.nib,那么有这样一个方法:
    registerNib(\uuu:forCellReuseIdentifier:)

    您不能这样做。全静态或全动态原型尝试从接口生成器中删除标识符。。或者删除registerClass行。>您不能这样做。是全静态原型还是全动态原型(为什么?>请尝试从界面生成器中删除标识符..或删除注册表类行。可能
    myLabel
    为零。能否将
    UncheckedStoreTableViewCell
    的代码添加到帖子中?这是不可能的。请确保键入的类名正确。是否可以从sympt将项目上载到某个位置您描述的oms单元可以很好地退出队列-问题是它的类是UITableViewCell,而不是您的自定义类。只有当我将我的
    tableView
    内容从静态原型更改为动态原型时,才有帮助。然后,对于静态表视图,所有工作都正常。您不应该实现cellForRowAtIndexPath以及其他uitableviewdatasource方法。这实际上对我很有帮助。在创建类之前,当我手动填充类时,Xcode没有注册我的类。即使我正确地填充了名称,我也必须重新填充类名。