ios - 我在 iOS UITableView 中有 NSInvalidArgumentException

标签 ios objective-c uitableview row

错误是:

2013-04-02 14:46:07.180 ECom[7855:c07] -[UITableViewController setItemRow:]: unrecognized selector sent to instance 0x768c770
2013-04-02 14:46:07.180 ECom[7855:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewController setItemRow:]: unrecognized selector sent to instance 0x768c770'

在最后一行代码的方法中:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([segue.identifier isEqualToString:@"clPanelSegue"])
    {
        NSIndexPath *path = [self.tableView indexPathForSelectedRow];
        ECOMClPanelDetailViewController *detail = (ECOMClPanelDetailViewController*)segue.destinationViewController;
        NSLog(@"clPanelSeguePathRow = %d", path.row);
        [detail setItemRow:path.row];
    }
}

最后一行的方法是

-(void)setItemRow:(int)aItemRow
{
    clDetailItemRow = aItemRow;
}

不明白哪里出了问题。谁能帮忙?

最佳答案

首先,您的详细信息面板似乎与您想象的不一样。根据错误消息,seque.destinationViewController 属于 UITableViewController 类,而不是 ECOMClPanelDetailViewController。这就是您首先需要追踪的内容。

其次,因此,当您发送 setItemView: 消息时,它无法被解释并引发异常。

首先查看 `destinationViewController 的实例化位置(可能是您的 XIB 文件)并确保您设置了正确的类。

关于ios - 我在 iOS UITableView 中有 NSInvalidArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15762274/

相关文章:

ios - 无法使用户定义的运行时属性起作用

ios - 在 Swift 中查找字符串中的空格数

objective-c - 如何制作动画计时器

ios - 以编程方式调用 tableView 单元格的 .delete editorialStyle

ios - 无法使单元格出队

ios - 为什么Xcode约束会对我的应用程序执行此操作?

ios - 通过 UIFont(...) 或 setTitleTextAttributes 定义标签始终显示小写字符串

ios - Container View 好像有 UINavigationBar 一样被下推?

iphone - 如何使用从 iPhone 应用程序主视图传递的搜索字符串在 subview 上调用 google 搜索

在 UIScrollView 中具有完整高度的 iOS UITableView