iPhone: «нераспознанный селектор отправлен на экземпляр» - PullRequest
1 голос
/ 06 января 2010

Я пытаюсь установить два разных представления в подпредставлении в соответствии с состоянием переключателя сегмента:

if ([sender selectedSegmentIndex] == gameIndex) {
    if (self.gameView.view == nil) {
        GameView *gameV = [[UIViewController alloc] initWithNibName:@"GameView" bundle:nil];
        self.gameView = gameV;
        [gameV release];
    }
    [tableView.view removeFromSuperview];
    [subView insertSubview:gameView.view atIndex:0];
} else {
    if (self.tableView.view == nil) {
        TableView *tableV = [[UIViewController alloc] initWithNibName:@"TableView" bundle:nil];
        self.tableView = tableV;
        [tableV release];
    }
    [tableView.view removeFromSuperview];
    [subView insertSubview:tableView.view atIndex:0];
}

TableView расширяет TableViewController, но я всегда получаю следующую ошибку, когда пытаюсь переключиться на просмотр таблицы:

2010-01-06 19: 55: 00.871 Гандбол [84675: 40b] * - [UIViewController tableView: numberOfRowsInSection:]: нераспознанный селектор, отправленный экземпляру 0x3b18360 2010-01-06 19: 55: 00.873 Гандбол [84675: 40b] * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '*** - [UIViewController tableView: numberOfRowsInSection:]: нераспознанный селектор, отправленный экземпляру 0x3b18360' 2010-01-06 19: 55: 00.874 Гандбол [84675: 40b] Стек: (

Любая помощь будет ДЕЙСТВИТЕЛЬНО, ДЕЙСТВИТЕЛЬНО оценена ...

1 Ответ

4 голосов
/ 06 января 2010

Хотя tableV объявлено как TableView, скорее всего, оно инициализируется простым UIViewConrtoller, как показано в вашем коде. Попробуйте изменить строку на:

TableView *tableV = [[TableView alloc] initWithNibName:@"TableView" bundle:nil];

И TableView должен быть подтипом UITableViewController.

Кстати, то же самое, вероятно, должно произойти и с GameView.

...