2013-04-04 60 views
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];

,并告诉我个在它无法找到赛格。我能够确认在故事板中设置了正确的标识符。

有谁知道这个问题可能是什么?

我在故事板上重新命名了一段时间,但是我更新了info.plist,我确信它在那之后仍然有效。

如果我在另一个项目中重新创建故事板,它可以正常工作,但是如果我在此项目中重新创建故事板,它将失败。

编辑:我确实在IB 中设置了正确的类,这也是一个手动搜索。

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

+0

确切的(初始)错误是怎样的? – tilo 2013-04-04 16:39:34

+0

我添加了确切的错误信息。 – Weston 2013-04-04 16:45:42

+0

在Storyboard中是否有一个标识符为“rootCell”的单元格? – tilo 2013-04-04 16:47:39

回答

1

我刚刚发生了这种情况。

只好在我viewDidLoad中

我使用的是普通的viewController添加[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WhateverCellID"];,意识到自己的错误,并切换到tableViewController,并开始得到同样的错误。

替代地使用“的UITableViewCell *细胞= [的tableView dequeueReusableCellWithIdentifier:CellIdentifier];` 没有indexPath选项,这是一个不同的呼叫,它不需要注册,并且可以满足需要。

+0

这是行不通的。即使我修复了出列,但当我尝试继续时,它仍然崩溃。 – Weston 2013-04-05 14:01:53

0

如果您从iPhone/iPad/Simulator中删除故事板或者无论您在调试它,然后在Xcode中清理,然后生成&运行,您是否看到不同的结果?我问的原因是,每次在Xcode中编译时,都会收到项目所包含的所有内容的联合。所以,如果您重新命名故事板,并没有完全清理干净,那么您的内置产品中可能会有两个故事板。