如何触发的NSTimer,对吗?(How to trigger NSTimer right away

2019-07-29 13:38发布

我需要调用一个方法,我的应用程序启动时,然后调用相同的方法每隔5秒。

我的代码非常简单:

// Call the method right away
[self updatestuff:nil]

// Set up a timer  so the method is called every 5 seconds
timer = [NSTimer scheduledTimerWithTimeInterval: 5
                                          target: self
                                        selector: @selector(updatestuff:)      
                                        userInfo: nil
                                         repeats: YES];

是否有定时器所以它的触发马上,然后每隔5秒的选项?

Answer 1:

NSTimer-fire[timer fire]; 是你在找什么。

这将触发/立即拨打计时器驳回的时间延迟。



Answer 2:

您无法安排计时器,并在同一行的代码立即将所有触发事件。 所以,你必须做到在两行代码。

首先,安排计时器,然后立即打电话给“火”在你的计时器:

timer = [NSTimer scheduledTimerWithTimeInterval: 5
                                      target: self
                                    selector: @selector(updatestuff:)      
                                    userInfo: nil
                                     repeats: YES];
[timer fire];

当火被调用时,你的计时器等待开火的时间间隔将重置,因为它只是跑,然后将继续在指定的时间间隔后运行 - 在这种情况下,每5秒。



Answer 3:

您可以初始化计时器,并在同一行火了:

[(checkStatusTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(checkStatusTimerTick:) userInfo:nil repeats:YES]) fire];


Answer 4:

在斯威夫特:

timer = Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(foo), userInfo: nil, repeats: true)
timer.fire()


文章来源: How to trigger NSTimer right away?
标签: ios nstimer