加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift学习笔记 - swift3.0用GCD实现计时器

发布时间:2020-12-14 06:30:26 所属栏目:百科 来源:网络整理
导读:swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法: 先贴代码: // 定义需要计时的时间 var timeCount = 60 // 在global线程里创建一个时间源 let codeTimer = DispatchSource . makeTimerSou

swift3.0之后,GCD的语法发生了翻天覆地的变化,从过去的c语法变成了点语法,下面是变化之后用GCD实现计时器的方法:

先贴代码:

// 定义需要计时的时间
var timeCount = 60
// 在global线程里创建一个时间源
let codeTimer = DispatchSource.makeTimerSource(queue:      DispatchQueue.global())
// 设定这个时间源是每秒循环一次,立即开始
codeTimer.scheduleRepeating(deadline: .now(),interval: .seconds(1))
// 设定时间源的触发事件
codeTimer.setEventHandler(handler: {
    // 每秒计时一次
    timeCount = timeCount - 1
    // 时间到了取消时间源
    if timeCount <= 0 {
        codeTimer.cancel()
        }
    // 返回主线程处理一些事件,更新UI等等
    DispatchQueue.main.async {
    }
})
// 启动时间源
codeTimer.resume()

发现改完后的GCD从之前的函数调用变成了现在的面向对象的调用方式了,更正直观和方便了,以上是我的一些总结,谢谢大家的阅读~

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读