倒计时仍在0之后

时间:2012-01-05 20:03:30

标签: objective-c nstimer

我有一个小问题我正在使用此代码从20开始计数0:

 mainInt = 20;
        randomMain = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(randomMainVoid)
                                                    userInfo:nil repeats:YES];

但在0之后,倒计时仍在计数(-1,-2,-3)

-(void) randomMainVoid {

    mainInt -=1;
    label.text = [NSString stringWithFormat:@"%D", mainInt];


}

有人知道如何在0之后停止计数吗?

4 个答案:

答案 0 :(得分:4)

假设您仍有指向NSTimer的指针,则需要调用- invalidate方法。

if (mainInt <= 0)
{
    [randomMain invalidate];
    [randomMain release]; // remove if you're using ARC.
}

答案 1 :(得分:0)

invalidate发送到randomMainVoid中的计时器,并在达到0时将其释放。

答案 2 :(得分:0)

一般来说,在其他人使用的大多数编码语言中,在循环中倒计时if语句,当达到0时,重置计数或停止计数。

答案 3 :(得分:0)

一旦你完成使用计时器对象(在你的情况下,一旦你的iVar达到0),你将不得不在你的计时器对象上调用invalidate方法。

[randomMain invalidate];