1
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))

如果您检查调试日志,并且结构间隔包含以下值。

值原来是 500000000

timeScale 原来是 1000000000

有人可以解释它如何给出精确的 0.5 秒吗?据我了解,每个 500000000 个单位 1/1000000000

4

1 回答 1

1

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

于 2019-08-12T01:56:53.860 回答