我能运行NSTimer的最快速度是什么,仍能获得可靠的结果?我已经读到接近30ms它开始变得无用,那么它“开始变得无用”...... 40ms? 50ms的?
答案 0 :(得分:4)
说the docs:
时间的有效解决方案 计时器的间隔限制为开启 50-100毫秒
的顺序
听起来如果你想要安全,你不应该使用0.1秒以下的计时器。但为什么不在你自己的应用程序中尝试它,看看你能走多远?
您将无法获得此保证。 NSTimers本质上是机会性的,因为它们与事件循环一起运行,并且除了Cocoa定时器调度机制的限制之外,它们有效的最佳粒度将取决于应用程序中发生的所有其他内容。
答案 1 :(得分:2)
你对可靠性的定义是什么? 1秒定时器中的16 mS误差误差小于2%,但30 mS定时器误差超过50%。
NSTimers将等待当前运行循环中发生的任何事情完成,并且任何时间错误都会累积。例如如果您触摸显示屏N次,则所有后续重复的NSTimer激活可能会延迟0到N个触摸处理程序所占用的累计时间(以及在“错误”时间运行的任何其他内容)。等
CADisplayLink计时器将尝试将时间量化为帧速率,假设没有一组前景任务与帧时间一样长。
答案 2 :(得分:1)
取决于您要完成的结果。 NSTimer Class
0.5 - 1.0
是获得可靠结果的好地方。