DispatchSource 定时器

var seconds = 90;
let timer : DispatchSourceTimer = DispatchSource.makeTimerSource(flags: [], queue: DispatchQueue.global())
timer.scheduleRepeating(deadline: .now(), interval: .seconds(1)/*, leeway: .milliseconds(100)*/)
timer.setEventHandler {
         seconds -= 1
        if seconds <= 0 {
                  timer.cancel()
                DispatchQueue.main.async {
                          /*更改UI*/
                  }
        }else {
              DispatchQueue.main.async {
               /*更改UI*/
              }
   }
}
timer.resume()

你可能感兴趣的:(DispatchSource 定时器)