swift 3.0 GCD倒计时写法
2016-11-08 本文已影响120人
Miridescent
不墨迹,直接干货
var timeout: Int = 60
let queue = DispatchQueue.global()
let source = DispatchSource.makeTimerSource(flags: [], queue: queue)
source.scheduleRepeating(deadline: .now(), interval: DispatchTimeInterval.seconds(1), leeway: DispatchTimeInterval.milliseconds(100))
source.setEventHandler{
print(timeout)
if timeout <= 0 {
print("结束")
source.cancel()
DispatchQueue.main.async {
// 执行操作,例如更新倒计时按钮UI
}
} else {
DispatchQueue.main.async {
// 执行操作,例如更新倒计时按钮UI
}
}
timeout -= 1
}
source.resume()