Ограничение на добавление объектов в запрос executeSelector (iOS4) - PullRequest
0 голосов
/ 09 февраля 2011

Если я использую этот код, приложение работает:

if ([self.navigationController respondsToSelector:@selector(showUpdateRecordModalWithFrontWord:andBackWord:)]) {
        NSLog(@"seems to respond");
        [self.navigationController performSelector:@selector(showUpdateRecordModalWithFrontWord:andBackWord:) 
                withObject:[currentCard frontWord] withObject:[currentCard backWord]];


    }

Если я добавлю третий параметр (ниже), я получу SIGABRT.

if ([self.navigationController respondsToSelector:@selector(showUpdateRecordModalWithFrontWord:andBackWord:andNotes:)]) {
        NSLog(@"seems to respond");
        [self.navigationController performSelector:@selector(showUpdateRecordModalWithFrontWord:andBackWord:andNotes:) 
                                        withObject:[currentCard frontWord] withObject:[currentCard backWord] withObject:[currentCard notes]];
    }

Метод здесь:

- (id)showUpdateRecordModalWithFrontWord:(NSString *)arg_name1 andBackWord:(NSString *)arg_name2 andNotes:(NSString *)arg_name3 {
    NSLog(@"%s", __FUNCTION__);

    AppProductModalController *modal = [[AppProductModalController alloc] initWithNibName:nil bundle:nil];
    [modal setNewRecord: NO];
    [modal setDelegate: self.topViewController];
    [modal.navBar.topItem setTitle: @"Update Card"];
    [modal.frontWordField setText: arg_name1];
    [modal.backWordField setText: arg_name2];
    [modal.notesField setText: arg_name3];
    [self presentModalViewController:modal animated:YES];
    [modal release];
    return nil;
}

У меня лимит параметров или я просто что-то не так делаю?

Я ценю любую помощь ..

1 Ответ

3 голосов
/ 09 февраля 2011

NSObject определяет только performSelector:, performSelector:withObject: и performSelector:withObject:withObject:.Здесь нет волшебства, когда вы «добавляете объекты» - просто нет такого метода, как performSelector:withObject:withObject:withObject:.Вероятно, ваше лучшее решение - просто отправить сообщение напрямую, а не набирать performSelector:.Селектор не меняется, поэтому проблем не должно быть.

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