我希望每秒执行一些操作。我不希望每两秒之间的刻度是准确的。但从长远来看,我希望它们精确到平均水平。
例如,滴答声可能按如下时间顺序发生:
0.999, 2.005, 2.995, 3.950, 5.012, ... 999.01, 1000.011, ...
函数可能不会精确地每秒执行,但从长远来看,会有平均没有(或足够少)错误。
一个简单的方法是使用 NSTimer。但是有一个问题:如果 CPU 比率很高,NSTimer 会以微小的延迟触发。例如,它可能会按如下顺序触发:
1.001, 2.002, 3.004, 4.005, 5.006, ... 999.999, 1001.001, ...
随着时间的流逝,时间误差可能会越来越大。
因此,有没有办法在 Xcode 中捕获任何时间流逝事件?像“ NSTimeNotificationSecondPassed ”或......?