如何使用nstimer显示秒数?

| 我正在做一个游戏项目。我需要知道如何显示游戏开始到结束的秒数?还需要以\“ 00:01 \”格式显示。如果时间超过60分钟,则还应该显示小时“ 1:00:01” 有指导吗? 谢谢...     
已邀请:
        结合Nathan和Mark的答案后,完整的计时器方法可能如下所示:
- (void)timer:(NSTimer *)timer {
    NSInteger secondsSinceStart = (NSInteger)[[NSDate date] timeIntervalSinceDate:startDate];

    NSInteger seconds = secondsSinceStart % 60;
    NSInteger minutes = (secondsSinceStart / 60) % 60;
    NSInteger hours = secondsSinceStart / (60 * 60);
    NSString *result = nil;
    if (hours > 0) {
        result = [NSString stringWithFormat:@\"%02d:%02d:%02d\", hours, minutes, seconds];
    }
    else {
        result = [NSString stringWithFormat:@\"%02d:%02d\", minutes, seconds];        
    }
    // set result as label.text
}
启动游戏时,您可以设置startDate并启动计时器,如下所示:
self.startDate = [NSDate date];
timer = [NSTimer scheduledTimerWithTimeInterval:0.25 target:self selector:@selector(timer:) userInfo:nil repeats:YES];
在停止游戏时,您可以使用以下命令:
self.startDate = nil;
[timer invalidate];
timer = nil;
    
        您可以安排一个重复计时器,该计时器每秒触发一次,当它触发时,它会调用更新您的时间显示的方法:
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];
然后在更新方法
- (void)timerFireMethod:(NSTimer*)theTimer {
    //remove a second from the display
}
您需要将计时器设置为一个属性,以便在完成操作后使其无效。     
        NSTimeInterval t = 10000; printf(\“%02d:%02d:%02d \\ n \”,(int)t /(60 * 60),((int)t / 60)%60,((int)t)%60); 输出 02:46:40 如果您想获得带小数点的秒数,则必须使用mode()有点困难。     

要回复问题请先登录注册