私はこのコードを使用すると、アプリが動作します。リミット(iOS4を)
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;
}
私はパラメータの上限に実行していますか、私は何か間違ったことをやっていますか?
私は任意の助けに感謝..
メッセージを直接送信するのではなく、なぜ '-performSelector ...'を送信しますか?たとえば、 '[self.navigationController showUpdateRecordModalWithFrontWord:[currentCard frontWord] andBackWord:[currentCard backWord]]; ' –