Ios Objective-C中scheduledTimerWithTimeInterval的反向NSTimer

Ios Objective-C中scheduledTimerWithTimeInterval的反向NSTimer,ios,objective-c,nstimer,Ios,Objective C,Nstimer,我有时间和行动。但我想在第一次5秒之后,第二次4秒之后,再打电话给你,然后 _timepast = 6; self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(handleDelay) userInfo:nil repeats:YES]; -(void)handleDelay { _timepast = _timepast - 1; dispatch_after(

我有时间和行动。但我想在第一次5秒之后,第二次4秒之后,再打电话给你,然后

_timepast = 6;
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(handleDelay) userInfo:nil repeats:YES];


-(void)handleDelay
{
   _timepast = _timepast - 1;
   dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(_timepast * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
      [self handleTimer];
   });
}

首先,如果您想在5秒后开始操作,然后创建第一个计时器,该计时器在5秒延迟后触发,然后使第一个计时器无效,并以5秒倒计时开始第二个计时器。这意味着在5秒延迟后,您将调用选择器并处理其中的操作。我给你们的代码是关于第二个定时器是如何工作的。我希望你会知道如何处理5秒延迟的第一个计时器

  • 创建2个变量

    var timerCount=5

    var定时器:定时器

  • 创建1秒间隔的计时器

    timer=timer.scheduledTimer(时间间隔:1,目标:self,选择器:#选择器(self.startTimer),userInfo:nil,repeats:true)

  • 在选择器方法中写入反向检查,如

    func startTimer(){
    如果时间计数>0{
    label.text=字符串(timerCount--)
    }
    否则{
    timer.invalidate()
    }
    }


  • 所以这意味着你想要反向定时器,对吗?@Hardiksha是的。它不起作用。。我希望我的第一个行动电话在5秒之后,下一个行动电话在4秒之后,下一个行动电话在3秒之后,下一个行动电话在0.5秒之后。您的代码调用操作后,所有的时间相同。