为什么我的NSTimer在到期时调用我的方法?

时间:2015-05-31 14:20:23

标签: ios objective-c nstimer

我正在使用NSTimer来调用名为Lose的方法。我有一个计时器,当它用完时,它称为Lose,但由于硬盘驱动器错误我丢失了一切。在尝试再次编码后,我似乎无法调用该方法。

Timer = [NSTimer timerWithTimeInterval:timeMax target:self selector:@selector(Lose) userInfo:nil repeats:NO];

在我的.h文件中声明丢失,如下所示:

-(void)Lose;

另外,我的方法如下:

-(void)Lose{

Text.hidden = NO;
scoreLabel.hidden = NO;
Target.hidden = YES;
Targetx.hidden = YES;


if (Score > highScoreNumber) {
    highScoreAchieved.hidden = NO;
    highScoreNumber = Score;
    }

}

变量timeMax是我的.h文件中声明的int,就像上次一样。 无论何时在我的游戏中点击目标,timeMax都会缩短.03秒。我是这样做的:

timeMax = 5 - (Score * 0.03);

在大规模硬件故障之前,我不记得它看起来有什么不同,但为什么它不起作用?

1 个答案:

答案 0 :(得分:3)

您必须在运行循环上安排计时器,或者只使用此行而不是为您安排计时器:

Timer = [NSTimer scheduledTimerWithTimeInterval:timeMax
                                         target:self
                                       selector:@selector(Lose)
                                       userInfo:nil
                                        repeats:NO];

总是备份代码也是个好主意......这让我想起了。