2013-02-11 50 views
0

我一直在这个项目上工作了一段时间。一切都很好,今天我升级到XCode 4.6 ...突然间,崩溃。如果没有数据(我在使用核心数据),它会加载一个空白的tableview。只要我尝试添加一些东西在我的其他视图控制器,崩溃。模拟器和我的设备上出现同样的问题。随着“所有异常”断点启用,调试器指向这一行:XCode 4.6 dequeueReusableCellWithIdentifier:forIndexpath:不工作

ReedCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

我得到“的UITableView:无法识别的选择......”作为例外。我的类肯定是​​UITableViewController的子类,因此应该有一个tableView,不是吗?当我将下面的测试代码放入ViewDidLoad时,我没有得到确认。换句话说,我的tableView不再响应该方法。有没有搞错?如果它被弃用,我没有看到任何文件。

if ([self.tableview respondsToSelector:@selector(dequeueReusableCellWithIdentifier:forIndexPath:)]) { 
    NSLog(@"RTVC responds to selector dequeueReusableCellWithIdentifier:forIndexPath:"); 
} 

我已经做了清理,删除它从模拟器,经检查发现在故事板视图控制器仍然是正确的类(它是)。我也尝试将消息发送到“self.tableview”而不是“tableview”。没有修复。再次,这工作正常,我没有改变任何东西,只是升级到4.6。谢谢!

+0

检查故事板中正确设置的标识符 – 2013-02-11 21:48:38

+1

您使用的是什么模拟器版本?这个方法是在iOS 6中引入的,所以如果你使用的是模拟器<6,那么这会失败,就像你看到的那样 – 2013-02-11 21:48:42

+0

你注册了一个NIB或者类的重用标识符吗? – Tommy 2013-02-11 21:49:03

回答

1

此方法已添加到iOS 6.因此它不会存在于较旧的模拟器中。

你可以看到,当被看文档UITableView

可用性
可提供的iOS 6.0及更高版本引入的方法。

+0

D'OH!我知道这很简单。看起来我正在尝试运行iOS 5模拟器,之前我在iOS 6中运行它。我将不得不修复此问题,因为我希望我的应用能够与iOS 5向后兼容。谢谢! – 2013-02-11 21:55:55