有人可以说如何保存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);


}


希望它能对您有所帮助

10-01 23:04