GCD倒计时

来源:互联网 发布:淘宝描述不符赔偿 编辑:程序博客网 时间:2024/06/07 02:59
  • 倒计时
    if (_timer) {
    dispatch_source_cancel(_timer);
    }
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);

    dispatch_source_set_event_handler(_timer, ^{

    NSCalendar *calendar = [NSCalendar currentCalendar];NSDate *fireDate = [NSDate dateWithTimeIntervalSinceNow:_timeInterval];NSDate *today = [NSDate date];unsigned int unitFlag = NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;/** !计算时差*/NSDateComponents *d = [calendar components:unitFlag fromDate:today toDate:fireDate options:0];if ([d hour] <= 0 && [d minute] <= 0 && [d second] <= 0) {    dispatch_async(dispatch_get_main_queue(), ^{       //todo 倒计时结束    });    if (_timer) {        dispatch_source_cancel(_timer);    }}else{    _timeInterval --;    NSString *time = [NSString stringWithFormat:@"%.2li小时%.2li分%.2li秒",(long)[d hour],(long)[d minute],(long)[d second]];    dispatch_async(dispatch_get_main_queue(), ^{       //todo 正在计时    });}

    });
    dispatch_resume(_timer);

0 0
原创粉丝点击