while循环使用NSTimer

时间:2013-09-07 22:57:33

标签: ios while-loop nstimer

我想创建一个运行的NSTimer,比方说10分钟。然后我想写一个while循环,然后延迟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

2 个答案:

答案 0 :(得分:4)

<强>第一

scheduledTimerWithTimeInterval:方法的timeInterval参数以秒为单位。如果您想在几分钟内,请不要忘记乘以60

<强>第二

为什么你要等一会儿等待countDown?只需在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
}

答案 1 :(得分:0)

而不是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秒。