XCode 4.6 dequeueReusableCellWithIdentifier:forIndexpath:不工作

时间:2013-02-11 21:46:04

标签: objective-c xcode uitableview ios6

我一直在研究这个项目。一切都很好,今天我升级到XCode 4.6 ......突然,崩溃。如果没有数据(我正在使用Core Data),它将加载一个空白的tableview。一旦我尝试在我的其他视图控制器中添加一些内容,就会崩溃。模拟器和我的设备上的问题相同。启用“All Exceptions”断点后,调试器将指向此行:

    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。谢谢!

1 个答案:

答案 0 :(得分:1)

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

您可以通过查看文档UITableView

来查看何时引入方法
  

<强>状况
  适用于iOS 6.0及更高版本。