2013-05-15 46 views
-1

在最后一行@implementation行中出现错误,说实现不完整。不确定是什么问题。什么会造成这种情况?我也发布了标题。不完整的实现错误

从.m文件中添加了其余的代码。

#import "mmViewController.h" 

@interface mmViewController() 
-(void)timerFired:(NSTimer*)theTimer; 

@end 

@implementation mmViewController 
@synthesize remainingTime, playerScore, scrambledWord; 


- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

-(void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    //Do any additional setup after loading the view, typically from a nib. 
    //Initialize the game model 
    gameModel = [[mmScramblerModel alloc] init]; 

    //Display the time, score and scrambled word 
    remainingTime.text = [NSString stringWithFormat:@"%i", gameModel.time]; 
    playerScore.text = [NSString stringWithFormat:@"%i", gameModel.score]; 
    scrambledWord.text = [gameModel getScrambledWord]; 

    //Start the game timer 
    gameTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 
               target:self 
               selector:@selector(timerFired:) 
               userInfo:nil 
               repeats:YES]; 
} 

-(void) endGameWithMessage:(NSString *)message { 
    //Call this method to end the game 

    //Invalidate the timer 
    [gameTimer invalidate]; 

    //Show an alert with the results 
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Game Over!" 
                message:message 
                delegate:self 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
    [alert show]; 
} 

-(void) timerFired:(NSTimer *)theTimer { 
    //The timer fires this method rougly every second 
    [gameModel timerTick]; 

    if(gameModel.time <= 0){ 
     remainingTime.text = 0; 
     [self endGameWithMessage:@"You are out of time. You lose!"]; 
    } 
    else 
     remainingTime.text = [NSString stringWithFormat:@"%i", gameModel.time]; 
} 

@end 








#import <UIKit/UIKit.h> 
#import "mmScramblerModel.h" 

@interface mmViewController : UIViewController { 
    mmScramblerModel* gameModel; 
    NSTimer* gameTimer; 
} 
-(IBAction)guessTap:(id)sender; 
-(void) endGameWithMessage:(NSString*) message; 

@property (weak, nonatomic) IBOutlet UITextField * guessText; 
@property (weak, nonatomic) IBOutlet UILabel * scrambledWord; 
@property (weak, nonatomic) IBOutlet UILabel * remainingTime; 
@property (weak, nonatomic) IBOutlet UILabel * playerScore; 

@end 
+0

你实现这两种方法显示在你的界面?你在类扩展中实现了'timerFired'方法吗?顺便说一句 - 摆脱'@ synthesize'线。那些不再需要了。在类扩展中也没有必要使用方法声明。 – rmaddy

回答

1

查看.h文件中列出的方法。现在看看你实际实现的方法。因为只有两个,所以很容易注意到你没有实现其中的一个。

执行guessTap:方法。

0

从你的代码中,我可以看到的interface declaration

-(IBAction)guessTap:(id)sender;

可是你有没有在.m文件中实现这种方法