我正在使用NSTimer
来更新显示每分钟当前时间的标签。我在一个完整的分钟日期(例如2:23:00而不是2:22:17)启动计时器。问题是NSTimer
似乎工作不正确,这意味着它有时会引发太早(导致(例如)2:23 PM,实际上是2:24 PM)。NSTimer不准确?
是否有任何修复/解决方法?
编辑:这就是我如何启动定时器:
NSTimer *clockTimer = [[NSTimer alloc] initWithFireDate:[NSDate nextFullMinuteDate]
interval:60.0
target:self
selector:@selector(updateClocks:)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:clockTimer
forMode:NSDefaultRunLoopMode];
[clockTimer release];
顺便说一句,我曾尝试加入几毫秒到火日期,这似乎帮助,但它看起来就像找到被击中适当的间隔添加-and错过。编辑2:好吧,所以我手动设置我的计时器在一分钟后0.05秒发射,然后在60.0秒后再次发射。现在,这里是我在调用的方法登录:
0.048728
0.047153
0.046484
0.044883
0.043103
正如你所看到的,NSTimer
实际上并未使用60秒的时间间隔,但略短的一个。
很难说不知道如何计算间隔并启动计时器 – hamstergene
如何计算'nextFullMinuteDate'? –
@PeterHosey:look [here](http://pastebin.com/ZsXWfM0p) – ryyst