@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);
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);
}