博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCD定时器
阅读量:6076 次
发布时间:2019-06-20

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

GCD定时器

by 伍雪颖
+ (GCDTimer *)repeatingTimer:(NSTimeInterval)seconds                                      block:(void (^)(void))block {  NSParameterAssert(seconds);  NSParameterAssert(block);  GCDTimer *timer = [[self alloc] init];  timer.block = block;  timer.source = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,                                        0, 0,                                        dispatch_get_main_queue());  uint64_t nsec = (uint64_t)(seconds * NSEC_PER_SEC);  dispatch_source_set_timer(timer.source,                            dispatch_time(DISPATCH_TIME_NOW, nsec),                            nsec, 0);  dispatch_source_set_event_handler(timer.source, block);  dispatch_resume(timer.source);  return timer;}- (void)invalidate {  if (self.source) {    dispatch_source_cancel(self.source);    self.source = nil;  }  self.block = nil;}
__block int n=0;    self.timer = [GCDTimer repeatingTimer:1 block:^{        n++;        NSLog(@"Hello");        if (n == 3) {            [self.timer invalidate];        }    }];
使用简单方便.

转载地址:http://bcxgx.baihongyu.com/

你可能感兴趣的文章
Android 中 ListView 分页加载数据
查看>>
oracle启动报错:ORA-00845: MEMORY_TARGET not supported on this system
查看>>
Go方法
查看>>
Dapper丶DapperExtention,以及AbpDapper之间的关系,
查看>>
搞IT的同学们,你们在哪个等级__那些年发过的帖子
查看>>
且谈语音搜索
查看>>
MySQL数据库导入导出常用命令
查看>>
低版本Samba无法挂载
查看>>
Telegraf+Influxdb+Grafana构建监控平台
查看>>
使用excel 展现数据库内容
查看>>
C#方法拓展
查看>>
MySql.Data.dll的版本
查看>>
Linux系统磁盘管理
查看>>
hdu 2191 (多重背包+二进制优化)
查看>>
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
腾讯十年老兵:区块链本质上是一个异地多活的分布式数据库
查看>>
就《在企业中发起和推广DevOps》的问答
查看>>
促进大会上的交流
查看>>