iOS开发 - Swift使用GCD实现计时器功能
来源:互联网 发布:web 数据库 编辑:程序博客网 时间:2024/05/21 02:19
前言
开发中,经常会用到定时执行网络请求、倒计时、计时器等功能,本篇文章介绍在iOS开发中,Swift怎样使用GCD实现这些功能。
执行一次
下面的代码将会在5秒后执行,且只执行一次。
let time: NSTimeInterval = 5.0let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC)))dispatch_after(delay, dispatch_get_main_queue()) { self.getTaskList(false)}
执行多次
下面的代码是一个60秒倒计时的例子。
var _timeout: Int = 60let _queue: dispatch_queue_t = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)let _timer: dispatch_source_t = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, _queue)// 每秒执行dispatch_source_set_timer(_timer, dispatch_walltime(nil, 0), 1 * NSEC_PER_SEC, 0) dispatch_source_set_event_handler(_timer) { () -> Void in if _timeout <= 0 { // 倒计时结束 dispatch_source_cancel(_timer) dispatch_async(dispatch_get_main_queue(), { () -> Void in // 如需更新UI 代码请写在这里 }) } else { print(_timeout) _timeout-- dispatch_async(dispatch_get_main_queue(), { () -> Void in // 如需更新UI 代码请写在这里 }) }}dispatch_resume(_timer)
交友互动:
本文首发于马燕龙个人博客,欢迎分享,转载请标明出处。
马燕龙个人博客:http://www.mayanlong.com
马燕龙个人微博:http://weibo.com/imayanlong
马燕龙Github主页:https://github.com/yanlongma
1 0
- iOS开发 - Swift使用GCD实现计时器功能
- IOS开发Swift使用NSURLSessionUploadTask实现后台上传功能
- iOS开发 - Swift实现清除缓存功能
- swift学习笔记 - swift3.0用GCD实现计时器
- iOS开发—使用GCD实现多线程
- GCD实现计时器
- GCD实现计时器
- iOS开发:使用GCD
- ios发送短信验证码计时器的swift实现
- iOS开发 ☞ GCD使用
- iOS开发:GCD的使用
- iOS多线程(GCD)(swift)
- 【iOS】Swift GCD-上
- 【iOS】Swift GCD-下
- 【iOS】Swift GCD-上
- 【iOS】Swift GCD-下
- Android 实现计时器功能
- 使用实现Runnable的多线程,实现秒表计时器功能
- 什么是 ANR 如何避免它?
- sso cas证书
- 多重背包 HDU 2191
- 正则表达式
- 使用recycleview实现简单的柱状图
- iOS开发 - Swift使用GCD实现计时器功能
- request farword 、responsesendRedirect() session问题
- 数据库的垂直分库和水平分库
- python分布式进程
- python 调用oracle 存储过程 监控表空间(二)
- Tesseract-OCR引擎 入门
- spring jpa data使用的基本知识和注意事项
- 无聊解一道数学题:喝农药杀人(这什么题目!!??)
- fgets代替gets