运行应用程序时找不到单元标识符

Posted

技术标签:

【中文标题】运行应用程序时找不到单元标识符【英文标题】:Cell Identifier not found when running app 【发布时间】:2020-10-02 01:27:05 【问题描述】:

我长期使用 UITables,最近从 Xcode 11.7 更新到 Xcode 12。

我创建了一个新表并将其放入单元原型中,标识符为“cellAutocomplete”,但是当尝试在“cellForRowAt”处使单元出队时,我收到错误消息:

** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法使具有标识符 cellAutocomplete 的单元格出列 - 必须为标识符注册一个 nib 或类或连接情节提要中的原型单元格” **

cellForRowAt 中的代码:

case tableAddressAutocomplete:
      let cell = tableView.dequeueReusableCell(withIdentifier: "cellAutocomplete", for: indexPath)
      let addressToDisplay = self.listOfAutocompletePredictions?[indexPath.row]
      cell.textLabel?.font = UIFont(name: "Graphik-Regular", size: 15.0)
      cell.textLabel?.text = addressToDisplay?.attributedFullText.string
      return cell

单元标识符确实存在于故事板中,并在 IB 的相应字段“标识符”中输入,但这是第一次发生这种情况。

我什至将 Inspector 中的标识符直接复制到了代码中,但我总是遇到同样的错误。

Xcode 12 中是否发生了一些变化从而导致了错误或可能是什么错误?我实际上在另一个 VC 上使用了相同的想法,但那是在使用 Xcode11.7 时(并且那个 VC 仍在工作)。

VC structure

Identifier in cell properties

【问题讨论】:

但这tableView 是否与情节提要中具有该单元格的表格视图相同?你说“我创建了一个新表”,这表明这个表视图控制器已经有一个不同的表。 【参考方案1】:

似乎 IBOutlet 可能在某处引用不正确,或者您的 tableview 在您的 VC 中引用了不正确的表视图(如果您有多个表视图)

    在 SearchListVC 故事板中,删除 TableAutoComplete F... 的 IBOutlet 重新添加插座 确保在 viewDidLoad 或情节提要中将 TableAutoComplete F... 委托和数据源正确设置为 self 确保委托方法中的tableview实际上是引用TableAutoComplete F... tableview 清理项目

【讨论】:

以上是关于运行应用程序时找不到单元标识符的主要内容,如果未能解决你的问题,请参考以下文章

使用 qt 和 opengl 编译 c++ 项目时找不到标识符错误

运行应用程序时找不到类错误

运行xcode应用程序时找不到设备消息[重复]

运行程序时找不到主类

Java通过Eclipse运行时找不到文件

通过桌面图标运行 bash 脚本时找不到节点命令