2013-04-02 29 views
0

的错误是:我NSInvalidArgumentException iOS中的UITableView

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' 

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

- (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; 
} 

不明白什么是错的。谁可以帮忙?

+0

确保segue的目标控制器确实是'ECOMClPanelDetailViewController',并检查是否在该控制器的类上定义了'setItemRow:'作为实例方法。 – dasblinkenlight

回答

2

首先,看起来您的详细面板不是您认为的那样。基于错误消息,seque.destinationViewController属于UITableViewController类,而不是ECOMClPanelDetailViewController。这就是你首先需要追踪的。

其次,正因为如此,当你发送你的setItemView:消息时,它不能被解释并引发异常。

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

+0

我是对的,thx! – ShurupuS

+0

谢谢!正是我的问题。 –

1

detail不是ECOMClPanelDetailViewController,而是指向UITableViewController。您可以在故事板中检查segue的标识符,以确保您没有在标识符名称中出现错误。

相关问题