iOS 使用GCD实现倒计时效果

时间:2023-03-09 06:38:09
iOS 使用GCD实现倒计时效果

在APP开发过程中,经常有需要实现倒计时效果, 比如语音验证码倒计时...代码如下:

  

__block int timeout = 100;

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, ^{

if (timeout <= 0) {

dispatch_source_cancel(_timer);

}else {

NSLog(@"---%d",timeout);

dispatch_async(dispatch_get_main_queue(), ^{

});

timeout --;

}

});

dispatch_resume(_timer);