2013-04-02 2 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' 

В методе ИНТ в последней строке кода:

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

u're right, thx! – ShurupuS

+0

Спасибо! точно моя проблема. –

1

detail не является ECOMClPanelDetailViewController, но указывает на UITableViewController. Вы можете проверить идентификатор segue в своем раскадровке, чтобы убедиться, что вы не допустили ошибку в имени идентификатора.

Смежные вопросы