@property (strong ,nonatomic) dispatch_source_t time;
//定时器
-(void)timer{
__weak typeof(self) WeakSelf = self;
__block NSInteger timer = 0;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// DISPATCH_SOURCE_TYPE_TIMER:定时器类型
self.time = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(self.time, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
dispatch_source_set_event_handler(self.time, ^{
timer += 1;
dispatch_async(dispatch_get_main_queue(), ^{
NSInteger minute = timer/60;
NSInteger seconds = timer - minute * 60;
if (minute >= 10) {
if (seconds >= 10) {
WeakSelf.timeLabel.text = [NSString stringWithFormat:@"%ld:%ld",minute,seconds];
}else{
WeakSelf.timeLabel.text = [NSString stringWithFormat:@"%ld:0%ld",minute,seconds];
}
}else{
if (seconds >= 10) {
WeakSelf.timeLabel.text = [NSString stringWithFormat:@"0%ld:%ld",minute,seconds];
}else{
WeakSelf.timeLabel.text = [NSString stringWithFormat:@"0%ld:0%ld",minute,seconds];
}
}
});
});
dispatch_resume(self.time);
}
//在退出程序时:dispatch_source_cancel(self.time);复制代码
ios 多线程定时器
最新推荐文章于 2021-02-19 20:02:15 发布