Проблема, выдвигающая viewcontroller - PullRequest
0 голосов
/ 13 февраля 2011

У меня проблема с этим кодом.Я искал решение и получаю следующее предупреждение:

предупреждение: (Предполагается, что сообщения без соответствующей сигнатуры метода возвращают 'id' и принимают '...' в качестве аргументов.).

Я знаю, что, вероятно, проблема с файлом .h, но я не могу найти где.

#import <UIKit/UIKit.h>
@class NewGameViewController;
@class AccessCurrentGameData;
@class QandA_ViewController;
enum {
kTagNewGame = 1,
kTagContinueGame = 2,
};
@interface MainViewController : UIViewController <UIAlertViewDelegate> {
IBOutlet NewGameViewController *newGameViewController;
IBOutlet QandA_ViewController *qanda_ViewController;
UIAlertView *continueExistingGame_alert;
UIAlertView *zeroGameFile_alert;
NSString *title_txt;
NSString *message_txt;
NSString *cancelButton_txt;
NSString *otherButton_txt;
UIAlertView *myAlert;

}

@property (nonatomic, retain) IBOutlet NewGameViewController *newGameViewController;
@property (nonatomic, retain) IBOutlet QandA_ViewController *qanda_ViewController;
@property (nonatomic, retain) UIAlertView *myAlert;

-(IBAction)continueGame_button:(id)sender;
-(IBAction)newGame_button:(id)sender;

@end

Файл .m:

-(IBAction)continueGame_button:(id)sender {
//=====CHECK IF THERE IS AN ON-GOING GAME, IF SO CONTINUE=====//
AccessCurrentGameData *isThereAnOngoingGameFunction = [AccessCurrentGameData new];
BOOL ongoingGame = [isThereAnOngoingGameFunction checkIfGameOngoing];
[isThereAnOngoingGameFunction release];
NSLog(@"+ + +continueGame_button+ + +");
NSLog(@"ongoingGame = %@\n", (ongoingGame ? @"YES" : @"NO"));
//
if (ongoingGame == YES) {
    NSLog(@"+++++++++ ONGOING GAME +++++++++");

    myAlert = [[UIAlertView alloc]
                initWithTitle:@"Fortsätta spel" 
                message:@"Det finns ett aktivt spel, klicka Spela eller Tillbaka"
                delegate:self
                cancelButtonTitle:@"Tillbaka"
                otherButtonTitles:@"Spela", nil];
    myAlert.tag=kTagContinueGame;
    [myAlert show];
    [myAlert release];
}
}

// Load new game screen
-(IBAction)newGame_button:(id)sender {
myAlert = [[UIAlertView alloc]
                initWithTitle:@"Varning" 
                message:@"Om du går vidare kommer pågående spel stoppas och nollställas!"
                delegate:self
                cancelButtonTitle:@"Tillbaka"
                otherButtonTitles:@"Fortsätt", nil];
myAlert.tag=kTagNewGame;
[myAlert show];
[myAlert release];

}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
switch(myAlert.tag ) {
    case kTagContinueGame:
        NSLog(@"kTagContinueGame");

        NSMutableArray *continueGameArray = [[NSMutableArray alloc] initWithCapacity:0];

        AccessCurrentGameData *getCurrentGameInfo = [AccessCurrentGameData new];
        continueGameArray = [getCurrentGameInfo continueTheCurrentGame];
        [getCurrentGameInfo release];
        NSLog(@"continueGameArray %@", continueGameArray);

        [continueGameArray release];

        QandA_ViewController * temp = [[QandA_ViewController alloc] init];
        [self setQandA_ViewController:temp]; //>>>>>HERE IS THE PROBLEM
        [temp release];
        [[self navigationController] pushViewController:qanda_ViewController animated:YES];
        break;
    case kTagNewGame:
        NSLog(@"kTagNewGame");
        AccessCurrentGameData *zeroCurrentGameFileFunction = [AccessCurrentGameData new];
        [zeroCurrentGameFileFunction firstCreationOrRestoreOfGameDataFile];
        [zeroCurrentGameFileFunction release];

        NewGameViewController * temp2 = [[NewGameViewController alloc] init];
        [self setNewGameViewController:temp2];
        [temp2 release];
        [[self navigationController] pushViewController:newGameViewController animated:YES];
        break;
    default:
        break;
}
}

Я получаю следующий вывод:

2011-02-12 22: 20: 40.943 FamQuiz_R0_1 [6346: 207] - [MainViewController setQandA_ViewController:]:нераспознанный селектор отправлен в экземпляр 0xa120980
2011-02-12 22: 20: 40.945 FamQuiz_R0_1 [6346: 207] * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [MainViewController setQandA_ViewControl]: нераспознанный селектор отправлен на экземпляр 0xa120980 '

1 Ответ

1 голос
/ 13 февраля 2011

Есть простая опечатка. Вы объявили свойство для QandA_ViewController *qanda_ViewController, поэтому имя установщика будет setQanda_ViewController с заглавной буквы Q, но строчной буквой a (заглавной будет только первая буква).

Попробуйте [self setQanda_ViewController:temp]; или переименуйте вашу собственность.

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