运行应用程序时找不到单元标识符
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
清理项目
【讨论】:
以上是关于运行应用程序时找不到单元标识符的主要内容,如果未能解决你的问题,请参考以下文章