我正在使用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