Objective c 不稳定的NSTimer会导致计数波动
我使用NSTimer从某个时刻开始计数Objective c 不稳定的NSTimer会导致计数波动,objective-c,nstimer,Objective C,Nstimer,我使用NSTimer从某个时刻开始计数 int totalSeconds; int totalMinutes; int totalHours; 如果总秒数为60,则总分钟数变为+1。它非常简单,应该可以工作。 例如,我启动了NSTimer和mac的时钟。(在模拟器上运行)。 当我看我的mac电脑的时钟和计时器,比较前10-20秒的时间时,它的计数完全同步。之后,它会波动或向前移动5秒或更长时间。 因此,我输出了我的计时器并发现: 2012-10-2414:45:44.002 xxApp驾驶时
int totalSeconds;
int totalMinutes;
int totalHours;
如果总秒数为60,则总分钟数变为+1。它非常简单,应该可以工作。
例如,我启动了NSTimer和mac的时钟。(在模拟器上运行)。
当我看我的mac电脑的时钟和计时器,比较前10-20秒的时间时,它的计数完全同步。之后,它会波动或向前移动5秒或更长时间。
因此,我输出了我的计时器并发现:
- 2012-10-2414:45:44.002 xxApp驾驶时间:0:0:44
- 2012-10-24 14:45:45.002 xxApp驾驶时间:0:0:45
- 2012-10-24 14:45:45.813 xxApp驾驶时间:0:0:46
- 2012-10-2414:45:46.002 xxApp驾驶时间:0:0:47
-[NSDate date]
存储到变量中。无论何时,只要您想计算经过了多少时间,请再次调用-[NSDate date
,并执行以下操作,假设originalDate
是存储第一次调用-[NSDate date]
结果的属性:
NSDate *presentDate = [NSDate date];
NSTimeInterval runningTime = [presentDate timeIntervalSinceDate:originalDate];
runningTime
将是自开始跟踪时间以来经过的总秒数。为了获取小时、分钟、秒等数,应使用NSDateComponents
对象
此机制允许您使用计时器“大约每秒一次”更新总运行时间,而不会丢失准确性。谢谢,这正是我所寻找的。重建我的代码需要一段时间,因为一切都取决于计时器。但这非常有用。