我有一个计时器:
let queue = DispatchQueue(label: "com.domain.app.timer")
timer = DispatchSource.makeTimerSource(queue: queue)
timer.schedule(deadline: .now(), repeating: 30.0, leeway: .seconds(0))
...
timer.resume()
除了一件事,它完美无缺。 Timer在我的 timer.resume()之后执行第一次迭代。但是我需要在重复时间之后执行第一次迭代 (在我的情况下为30秒)。怎么做?
答案 0 :(得分:1)
deadline
参数确定第一个交付时间(主题
计时器合并,余地,......)和repeating
参数
确定第一次交付后的间隔。
因此
timer.schedule(deadline: .now() + 30.0, repeating: 30.0, leeway: .seconds(0))
计划定时器在30秒后发送,然后再次发送 30秒。