美文网首页
GCD 定时器的使用

GCD 定时器的使用

作者: Rui哥 | 来源:发表于2018-06-26 22:18 被阅读10次

@interface ViewController ()

@property(nonatomic, strong)dispatch_source_t timer;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    /** GCD 定时器的使用 五大步 */
    
    /** step1 创建义个定时器类型的 Runlopp InputSource
     参数1:source的类型 timer
     参数2:对参数1的描述默认传0,
     参数3:对参数1的更详细描述默认传0,
     参数4:timer source 执行的队列 (mainQueue 主线程,非mainQueue 子线程)
     */
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
    
    
    
    /** step2: 设置runloop 的inputSource
     参数1: timer 类型的inputSource
     参数2: 从什么时间开始  DISPATCH_TIME_NOW 现在
     参数3: 定时间个时间 2秒1次
     参数4: 允许的定时误差,0 表示精准
     
     */
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
    
    
    /** step3: 定时器执行的事件 */
    dispatch_source_set_event_handler(timer, ^{
        NSLog(@"定时器 --- 定时执行的事件");
    });
    
    /**step4: 开启定时器 (定时器默认是挂起的) */
    dispatch_resume(timer);

    /** step5:  包住定时器的名 */
    self.timer = timer;
}

相关文章

网友评论

      本文标题:GCD 定时器的使用

      本文链接:https://www.haomeiwen.com/subject/anyvfftx.html