2011-02-12 129 views
0

我有这个代码的问题。我一直在寻找解决方案,并得到以下警告:推送视图控制器的问题

警告:(消息没有匹配的方法签名将假定返回'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_ViewController:]:无法识别的选择发送到实例0xa120980'

回答

1

有一个简单的错字。你声明一个属性为QandA_ViewController *qanda_ViewController,所以设置者的名字将是setQanda_ViewController,大写字母Q,小写字母a(只有第一个字母大写)。

尝试[self setQanda_ViewController:temp];或重命名您的财产。

+0

非常感谢。真的很感谢你的帮助,我现在学到了一些新的东西:-) ......经过一番研究。 – PeterK 2011-02-12 21:50:08