对于我的问题,我是从Apple Documentation引用Swift中的Timer
:
Timer.scheduledTimer(timeInterval ti: TimeInterval,
target aTarget: Any,
selector aSelector: Selector,
userInfo: Any?,
repeats yesOrNo: Bool) -> Timer
我的问题是关于timeInterval
参数:计时器速度将保持恒定时,是否存在大于0的十进制值?我问是因为经过一些测试,使用0.00001
和0.00000001
的间隔似乎并没有产生任何明显的差异。在文档或Google reasearch中都没有找到答案。
答案 0 :(得分:2)
在iOS中,NSTimer在主线程的运行循环中被调用,因此可以可靠地调用它的最大速率通常为每秒30到60次(在更新的版本中可能高达每秒120次) iPad Pro),与显示帧频有关。因此,最短的可靠时间间隔通常在8到33.3毫秒的范围内。当然不是10美元。
一个更可靠的计时器是使用CADisplayLink,它通常比NSTimer更可靠地锁定在每秒60帧的显示帧速率上,后者似乎具有较低的优先级,因此会导致更大的延迟或触发时间抖动。为了获得更好的时序分辨率,您可以尝试在专用线程中使用支持回旋参数的GCD调度计时器,甚至可以坐在旋转循环中轮询mach计时器。