func addPeriodicTimeObserver(forInterval interval: CMTime, queue: DispatchQueue?, using block: @escaping (CMTime) -> Void) -> Any

代码片段显示,间隔将每0.5秒调用一次块
//每半秒调用一次回调
let interval = CMTime(seconds: 0.5,
                          preferredTimescale: CMTimeScale(NSEC_PER_SEC))

如果检查调试日志,并且结构间隔包含以下值。
价值是5亿
时间刻度是100000000
有人能解释一下它是如何精确到0.5秒的吗?据我所知,是500000000单位,每单位1/100000000

最佳答案

Seconds参数是触发间隔的频率(0.5秒),而preferredTimescale是值的分辨率,在本例中是10^9。如果调试该函数,将按10^-9秒(ns)的顺序每隔0.5秒获取一个值。

10-08 04:52