dispatch_source_t 坑小记

前几天使用dispatch_source_t做计时器,遇到了dispatch_source_set_event_handler 不执行的问题
代码如下
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);
dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行
dispatch_source_set_event_handler(_timer, ^{
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示 根据自己需求设置
timeCount=timeCount+2;
DLog(@"dasd%d",timeCount);
});

});
dispatch_resume(_timer);

大致是没有问题得 但是 dispatch_source_set_event_handler 是不执行的,
原因可能是被释放的问题
将_timer 声明为属性就没有这个问题了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Dispatch Sources 现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继...
    好雨知时节浩宇阅读 3,850评论 2 5
  • Dispatch Sources 现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继...
    YangPu阅读 346评论 0 0
  • 支持原创 现代系统通常提供异步接口,允许应用向系统提交请求,然后在系统处理请求时应用可以继续处理自己的事情。Gra...
    John_LS阅读 3,621评论 3 2
  • 目录(GCD): 关键词 混淆点 场景应用 总结 1. 关键词 线程概念: 独立执行的代码段,一个线程同时间只能执...
    Ryan___阅读 1,295评论 0 3
  • 今天一到家就看到爷俩在看电视,10:00还没睡的意思。人在疲惫的情况下大脑盖子太容易打开了,在就要开启机关枪唠叨抱...
    紫涵0517阅读 127评论 0 0