为什么我的 NSTimer 在到期时不调用我的方法?
Why isn't my NSTimer calling my method upon expiration?
我正在使用 NSTimer 调用名为 Lose 的方法。我有一个计时器,当它 运行 结束时,它会调用 Lose,但由于硬盘驱动器错误,我失去了一切。在尝试再次编写代码之后,我似乎无法调用要调用的方法。
Timer = [NSTimer timerWithTimeInterval:timeMax target:self selector:@selector(Lose) userInfo:nil repeats:NO];
Lose 在我的 .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 就会缩短 0.03 秒。我是这样做的:
timeMax = 5 - (Score * 0.03);
我不记得在大规模硬件故障之前它看起来有什么不同,但为什么它不起作用?
您必须在 运行 循环中安排计时器,或者只使用为您安排的这一行:
Timer = [NSTimer scheduledTimerWithTimeInterval:timeMax
target:self
selector:@selector(Lose)
userInfo:nil
repeats:NO];
始终备份您的代码也是一个好主意...这提醒了我。
我正在使用 NSTimer 调用名为 Lose 的方法。我有一个计时器,当它 运行 结束时,它会调用 Lose,但由于硬盘驱动器错误,我失去了一切。在尝试再次编写代码之后,我似乎无法调用要调用的方法。
Timer = [NSTimer timerWithTimeInterval:timeMax target:self selector:@selector(Lose) userInfo:nil repeats:NO];
Lose 在我的 .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 就会缩短 0.03 秒。我是这样做的:
timeMax = 5 - (Score * 0.03);
我不记得在大规模硬件故障之前它看起来有什么不同,但为什么它不起作用?
您必须在 运行 循环中安排计时器,或者只使用为您安排的这一行:
Timer = [NSTimer scheduledTimerWithTimeInterval:timeMax
target:self
selector:@selector(Lose)
userInfo:nil
repeats:NO];
始终备份您的代码也是一个好主意...这提醒了我。