0

我正在处理的项目中有一个故事板,但最近我注意到我遇到了问题。不知从何而来,我的代码现在告诉我我需要为单元标识符注册一个类

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier rootCell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

(我在情节提要中有单元原型,所以我认为我不需要。)如果我执行

[tableView registerClass:<my class> forCellReuseIdentifier:<identifer>];

它会超出这个范围,但是当我挂断时

[self performSegueWithIdentifier:<my ID> sender:self];

并告诉我它找不到segue。我能够确认 segue 是在情节提要中使用正确的标识符设置的。

有谁知道是什么问题?

不久前我在情节提要上进行了重命名,但我更新了 info.plist 并且我很确定它在那之后仍然有效。

如果我在另一个项目中重新创建故事板,它工作正常,但如果我在这个项目中重新创建故事板,它会失败。

编辑:我确实在 IB 中正确设置了课程,这也是手动 segue。

编辑:添加了确切的错误措辞。

4

2 回答 2

1

我刚刚发生了这种情况。

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WhateverCellID"];必须在我的 viewDidLoad中添加

我正在使用常规的 viewController,意识到我的错误,并切换到 tableViewController 并开始遇到同样的错误。

或者使用 'UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];` 如果没有 indexPath 选项,这是一个不同的调用,它不需要注册并且可能适合您的需要。

于 2013-04-04T20:14:31.430 回答
0

如果你从你的 iPhone/iPad/Simulator 或任何你正在调试它的地方删除故事板,然后在 Xcode 中清理,然后构建并运行,你会看到不同的结果吗?我问的原因是每次你在 Xcode 中构建时,你都会得到项目曾经包含的所有内容的联合。因此,如果您重命名了故事板,并且还没有完全清理,那么您可能在构建的产品中同时拥有两个故事板。

于 2013-04-05T05:15:28.350 回答