因此,在查看了此站点上可能的每个 NSTimer 暂停/恢复之后,在恢复计时器方面对我没有任何帮助。暂停和启动计时器完美无缺,没有问题。另一方面,Resume 功能什么都没有。
我的计时器由
[tickerTimer invalidate];
tickerDate = [NSDate date];
tickerTimer = [NSTimer scheduledTimerWithTimeInterval:.01 target:self selector:@selector(runTimer) userInfo:nil repeats:YES];
还有计时器本身
-(void)runTimer {
NSTimeInterval interval = [tickerDate timeIntervalSinceNow];
seconds = ABS((int)interval);
minutes = seconds/60;
hours = minutes/60;
hhmmssLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes%60, seconds%60];
}
暂停功能是
pauseStart = [NSDate dateWithTimeIntervalSinceNow:0];
previousFireDate = [tickerTimer fireDate];
NSDate *date = [NSDate distantFuture];
[tickerTimer setFireDate:date];
最后那份不起作用的简历是
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[tickerTimer setFireDate:[NSDate dateWithTimeInterval:pauseTime sinceDate:previousFireDate]];
我是在错误地使用 fireDate 还是有更好的方法来暂停和恢复?