如何根据按下的按钮设置 NSTimer?

How can I set a NSTimer based on what button is pressed?

我有一个可以设置计时器的游戏。

-(void)setTimer{
self->mTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self   selector:@selector(buttonNotPushed) userInfo: nil repeats:NO];
}

-(void)resetTimer{
[self->mTimer invalidate];
self->mTimer = nil;
}

目前,当用户点击“播放”按钮时,计时器将为 5 秒。还有其他按钮,每次按下它们我 运行

- (IBAction)buttonPressed:(id)sender {

if ([condition]) {
[self resetTimer];
[self setTimer];
}
else ([self gameOver]);
}

我想创建一个定时器为 10 秒的 practice/kid 模式。除了在另一个 viewController 上再次复制整个游戏并设置计时器之外,还有更短的方法吗?

与其在 setTimer 中使用显式 5.0,不如创建一个整数 属性 并引用它。因此,在 @interface

中创建 interval
@property (nonatomic) CGFloat interval;

然后根据需要设置为5.0或10.0。然后你的 setTimer 只是:

- (void)setTimer {
    mTimer = [NSTimer scheduledTimerWithTimeInterval:self.interval target:self selector:@selector(buttonNotPushed) userInfo: nil repeats:NO];
}