常用的GCD定时器

//获得队列
    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    //创建一个定时器
    self.time = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    //设置开始时间
    dispatch_time_t start = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC));
    //设置时间间隔
    uint64_t interval = (uint64_t)(15.0* NSEC_PER_SEC);
    //设置定时器
    dispatch_source_set_timer(self.time, start, interval, 0);
    //设置回调
    WEAKSELF
    dispatch_source_set_event_handler(self.time, ^{
        [weakSelf requestCurrentLoacation];
        if (isAgain == NO) { //取消定时器
            dispatch_cancel(self.time);
        }
    });
    //启动定时器 (默认是关闭的)
    dispatch_resume(self.time);

@property (nonatomic, strong)dispatch_source_t time;

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

推荐阅读更多精彩内容