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

原创 2016年12月26日 11:01:56

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从之前的函数调用变成了现在的面向对象的调用方式了,更正直观和方便了,以上是我的一些总结,谢谢大家的阅读~

版权声明:本文为博主原创文章,未经博主允许不得转载。

50天iOS挑战(Swift) - 第1天:秒表计时器

50天iOS挑战(Swift) - 第一天:秒表计时器

简单的计时器-swift

import UIKit class ViewController: UIViewController { var time = 0 func result(){...

swift 计时器进入后台后计时问题

自己用swift 写了个计时器,每当app切换后台的时候软件就会暂停,若自己申请后台,则由苹果管理,无法准确计时。 我搜索网上的文章,获得了解决方法。以下是我的解决过程 实现方法: 1.用Noti...

Swift3.0 GCD定时器的使用,实现倒计时,UIDatePicker的使用, 仿写一个活动倒计时的DEMO

Swift3.0 GCD定时器实现倒计时,UIDatePicker的使用, 仿写一个活动倒计时的DEMO

swift 用GCD写的倒计时 防止计时器不准

self.timeCount = 60 var queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) ...

Swift 4.0中 GCD定时器写法,及延时操作

Swift 4.0中对 GCD定时器的写法做了很多改进,使之更符合Swift的语言特点,比OC的语法看起来是简明清晰了不少/// GCD定时器倒计时⏳ /// - timeInterval: 循环...
  • zxw_xzr
  • zxw_xzr
  • 2017年10月23日 13:37
  • 565

iOS开发 - Swift使用GCD实现计时器功能

前言 开发中,经常会用到定时执行网络请求、倒计时、计时器等功能,本篇文章介绍在iOS开发中,Swift怎样使用GCD实现这些功能。 执行一次下面的代码将会在5秒后执行,且只执行一次。let tim...

swift3.0 GCD DispatchSourceTimer注意事项

var count = 0;         var timer = DispatchSource.makeTimerSource(flags: [], queue: DispatchQueue.g...

Swift3.0中GCD定时器的使用

swift3.0语法变化之后,好多东西用法都发生了变化,最近要用到定时器,网上搜集了好多写法,最后才搞好,现分享一下,方便以后使用,也希望能帮助别人 首先,创建定时器,和之前的有所不同,代码如下: ...

swift 简单倒计时

swift 原因写的倒计时,可用于接收短信验证码倒计时
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift学习笔记 - swift3.0用GCD实现计时器
举报原因:
原因补充:

(最多只允许输入30个字)