美文网首页
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