而循环使用的NSTimer(while loop using NSTimer)

2019-10-18 14:25发布

我想创建一个运行为让说10分钟的NSTimer。 然后,我想写一个while循环aftewards之后执行前行延迟10分钟的时间。 例如。

     NSTimer * countDown = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector userInfo:nil repeats:NO];

while (countDown == stil running (hasnt reached 10 minute mark) ){
// kill 10 minutes of time
}//when 10 minutes is up

execute next line of code

Answer 1:

第一

的一个时间间隔参数scheduledTimerWithTimeInterval:方法是秒。 如果你在几分钟内想要的,不要忘记乘以60

第二

你为什么要等待一个,而像倒计时? 只要打电话要在选择器,10多分钟后执行该行NSTimer火灾。

NSTimer * countDown = [NSTimer 
                        scheduledTimerWithTimeInterval:(10.0 * 60)
                        target:self 
                        selector:@selector(tenMinutesLater) 
                        userInfo:nil 
                        repeats:NO];

接着

-(void)tenMinutesLater
{
   //put some code here. This will be executed 10 minutes later the NSTimer was initialized
}


Answer 2:

相反,while循环,只是做一个新的计时器一个由你的第一个计时器调用的方法内。

 NSTimer *countDown = [NSTimer scheduledTimerWithTimeInterval:600 target:self selector:@selector(startSecondTimer) userInfo:nil repeats:NO];


- (void)startSecondTimer
{
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:600 target:self selector:@selector(doSomething) userInfo:nil repeats:NO];
}

PS,该时间间隔以秒为单位 - 10分钟= 600秒,而不是10。



文章来源: while loop using NSTimer