有人可以说如何保存NSTimer吗?
我需要显示玩家完成游戏的时间。请提出建议。
谢谢。
最佳答案
你可以这样int currentTime;
BOOL isGameOver;
- (void)viewWillAppear:(BOOL)animated
{
isGameOver=FALSE;
[self start];
[super viewWillAppear:YES];
}
- (IBAction)start{
currentTime = 0;// SET 60 SECODE AS STATICULLY YOU CAN SET YOUR OWN TIME
lbl=[[UILabel alloc]init];
//creates and fires timer every second
myTimer = [[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(showTime) userInfo:nil repeats:YES]retain];
}
-(IBAction)gameOverAction
{
isGameOver=TRUE;
//your game action Whenever its game over this method fire and Set One Bool value in this method like
}
-(void)showTime{
if(isGameOver==TRUE)
{
[myTimer invalidate];
myTimer = nil;
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Game Over"
message:[NSString stringWithFormat:@"Your Rount Time is %.2d", currentTime]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
//you can save this [NSString stringWithFormat:@"Your Rount Time is %.2d", currentTime] in nsuserdefoult or database like bellow
NSString *myGameLastTime =[NSString stringWithFormat:@"Your Rount Time is %.2d", currentTime] ;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:myGameLastTime forKey:@"gameoverTime"];
[defaults synchronize];
//now you can get this time anyplace in your project like [[NSUserDefaults standardUserDefaults] valueForKey:@"gameoverTime"]
}
currentTime++;
lbl.text = [NSString stringWithFormat:@"%.2d", currentTime];
NSLog(@"my lable == %@",lbl.text);
}
希望它能对您有所帮助