我正在尝试创建一个简单的倒数计时器,以便当玩家进入我的游戏时,计时器从 60 开始下降到 0。这看起来很简单,但我对如何编写这个感到困惑。
到目前为止,我在 GameController.m 中创建了一个方法,如下所示:
-(int)countDownTimer:(NSTimer *)timer {
[NSTimer scheduledTimerWithTimeInterval:-1
invocation:NULL
repeats:YES];
reduceCountdown = -1;
int countdown = [[timer userInfo] reduceCountdown];
if (countdown <= 0) {
[timer invalidate];
}
return time;
}
在游戏开始时,我将整数 Time 初始化为 60。然后在 ViewController 中设置标签。但是在我编译代码的那一刻,它只是在 60 处显示标签并且根本没有减少。
任何帮助将不胜感激 - 我是 Objective-C 的新手。
编辑
在一些帮助下,我现在将代码分成 2 个单独的方法。代码现在如下所示:
-(void)countDown:(NSTimer *)timer {
if (--time == 0) {
[timer invalidate];
NSLog(@"It's working!!!");
}
}
-(void)countDownTimer:(NSTimer *)timer {
NSLog(@"Hello");
[NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(countDown:)
userInfo:nil
repeats:YES];
}
但是,代码仍然无法正常运行,当我从视图控制器调用方法 [game countDownTimer] 时,它会中断说:“无法识别的选择器已发送到实例”。任何人都可以解释这里有什么问题吗?