废话不多说,直接上代码。
代码的意思是0.5秒后开启定时器,每一秒钟执行一次
__block int i = 0;
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0));
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 0.5 * NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
i++;
if (i==30) {
//计时器取消
dispatch_source_cancel(timer);
//计时器暂停
// dispatch_suspend(timer)
}
NSLog(@"定时器%d",i);
});
//定时器开启
dispatch_resume(timer);
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
NSLog(@"延迟一秒输出");
});