博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dispatch_source_create创建定时器和UIWindow创建类似处
阅读量:6002 次
发布时间:2019-06-20

本文共 885 字,大约阅读时间需要 2 分钟。

dispatch_source_create创建定时器

   //定时器

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    //    创建定时器,本身也是个oc对象,必须设置为全局,不然已创建就销毁了,所以要保存下来
    _progressTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    //控制计时器第一次触发的时刻,延迟0s
    dispatch_time_t strat = dispatch_time(DISPATCH_TIME_NOW, 0 * NSEC_PER_SEC);
    //每隔多长时间执行一次
    dispatch_source_set_timer(_progressTimer, strat, 0.1 * NSEC_PER_SEC, 0);
    dispatch_source_set_event_handler(_progressTimer, ^{
       // do something
    });
    dispatch_resume(_progressTimer); //定时器启动

    dispatch_suspend(_progressTimer); //定时器挂起,暂停

    dispatch_source_cancel(_progressTimer); //定时器异步取消

    dispatch_cancel(_progressTimer); //定时器取消

//创建的定时器要保存起来,设为全局变量,不然已创建就销毁了,所以要保存下来和UIWidow一样,创建都要设为全局变量不然再次使用的时候已经销毁了,无法使用

还有需要注意的,就是定时器取消之后,又或者定时器没有创建的时候,对定时器操作的话会崩溃

还有就是定时器挂起状态也不能操作定时器也会崩溃

 

转载于:https://www.cnblogs.com/xingxiaoxiao/p/10238055.html

你可能感兴趣的文章
Uva 10474 Where is the Marble?
查看>>
诊断一句SQL不走索引的原因
查看>>
(转)将rdlc报表作为资源嵌套使用
查看>>
iOS开发拓展篇—UIDynamic(简单介绍)
查看>>
Linux pipe函数
查看>>
图片标注工具LabelImg使用教程
查看>>
011 递归
查看>>
南京建邺、秦淮等7个区公布校外培训机构白名单
查看>>
python 全局变量与局部变量
查看>>
011 pandas的常见操作
查看>>
WPF在3D Cad模型中利用TextureCoordinates实现颜色渐变显示偏差值的变化
查看>>
Linux 安装 Docker
查看>>
Python3下基于bs4和sqlalchemy的爬虫实现
查看>>
centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本
查看>>
Idea下Python开发平台的搭建
查看>>
token令牌和jwt
查看>>
I2S接口介绍
查看>>
(原創) 如何設計一個數位相框? (SOC) (Quartus II) (SOPC Builder) (Nios II) (TRDB-LTM) (DE2-70)...
查看>>
/etc/profile文件内容
查看>>
量词 匹配优先与忽略优先
查看>>