2013-04-02 32 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的標識符,以確保您沒有在標識符名稱中出現錯誤。

相關問題