NSInvalidArgumentException - PullRequest
       3

NSInvalidArgumentException

5 голосов
/ 07 апреля 2009

После добавления отправителя: (id) я получаю сбой из этой процедуры, чтобы определить, какая кнопка вызывала его. Когда установлено как обычный старый toggleView3, это работает отлично. Сбой происходит, когда detailView переключается обратно на docView.

'NSInvalidArgumentException', reason: '*** -[RootViewController toggleView3]: unrecognized selector sent to instance 0x524a00' 2009-04-07 12:29:44.421 eTarot[11405:20b] Stack:

-(IBAction)toggleView3:(id)sender{


    if (detailViewController == nil) {
        [self loadDetailViewController];
    }

    UIView *docView = docViewController.view;
    UIView *detailView = detailViewController.view;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationTransition:([docView superview] ? UIViewAnimationTransitionFlipFromRight : UIViewAnimationTransitionFlipFromLeft) forView:self.view cache:YES];

    if ([docView superview] != nil) {
        [detailViewController viewWillAppear:YES];
        [docViewController viewWillDisappear:YES];
        [docView removeFromSuperview];

        [self.view addSubview:detailView];
        [self.view insertSubview:detailNavigationBar aboveSubview:detailView];
        [docViewController viewDidDisappear:YES];
        [detailViewController viewDidAppear:YES];

    } else {
        [docViewController viewWillAppear:YES];
        [detailViewController viewWillDisappear:YES];
        [detailView removeFromSuperview];
        [detailNavigationBar removeFromSuperview];
        [self.view addSubview:docView];
        [detailViewController viewDidDisappear:YES];
        [docViewController viewDidAppear:YES];
    }
    [UIView commitAnimations];
}

Ответы [ 2 ]

13 голосов
/ 07 апреля 2009

Вы отправляете просмотр сообщения toggleView3, когда правильное имя селектора равно toggleView3: - то есть с двоеточием и аргументом. Они могут выглядеть похожими на вас, но они совершенно не похожи на Objective-C.

2 голосов
/ 07 апреля 2009

Это исключение означает, что ваше приложение вызывает toggleView3 без аргумента: sender где-то. Поскольку вашему новому методу требуется аргумент, он аналогичен вызову метода, который никогда не существовал.

Если вы просматриваете трассировку стека в отладчике, должно быть достаточно ясно, откуда она берется. Возможно, в результатах сборки также есть предупреждение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...