2012-01-07 41 views

回答

4

NSTimer reference page

因爲一個典型的運行循環管理的各種輸入源,用於定時器的時間間隔的有效 分辨率被限制爲上 50-100毫秒的數量級。如果在長標註期間或運行循環處於非 監控定時器的模式下發生定時器的觸發時間 ,定時器將不會觸發,直到下一次運行循環檢查定時器爲止。因此,計時器觸發的實際時間可能是在計劃的點火時間之後的相當長的一段時間。

不過,這就是NSTimer,它通常用於觸發在特定時間或某個時間間隔發生的事件。如果您嘗試測量已用時間,則可能會得到比100ms更精確的結果,但我沒有看到文檔中記錄的準確性。

1

嘗試包括mach/mach_time.h,mach_time()似乎提供了微秒或更好的分辨率定時值,並且沒有像NSDate那樣的非單調性問題。

+0

+1這就是我一直在尋找的東西 - 我確定你可以用比NSTimer更好的準確度來衡量時間,但我忘記了在哪裏尋找。 – Caleb 2012-01-07 18:53:53