我有一个小问题我正在使用此代码从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之后停止计数吗?
答案 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];