我需要在一个循环中循环5次2.5秒,然而,按钮的压力来自单循环而不会中断调度。 我使用方法火(带按下按钮)来停止重复计时器而不中断其常规射击计划,但我不知道,后续循环比定义的2.5秒短:
.......
@IBAction func buttonZeroPressed(sender: AnyObject) {
timer.fire()
++addWin
}
...
timer = NSTimer.scheduledTimerWithTimeInterval(2.5, target: self,
selector: Selector("levelOne"), userInfo:nil,repeats: true)
...
func levelOne() {
level = 1
count++
changePhoto()
if (count >= 5) {
timer.invalidate()
}
}
按下3按钮后,计时器似乎是2.5秒,我不明白为什么!
答案 0 :(得分:1)
fire()
方法是启动已创建但未安排的计时器的方法。您想使用invalidate()
来停止计时器。
@IBAction func buttonZeroPressed(sender: AnyObject) {
timer.invalidate()
++addWin
}
您的计时器将立即启动,因为您致电scheduledTimerWith...
。如果您想在不启动的情况下创建计时器,可以使用:
timer = NSTimer(timeInterval: 2.5, target: self, selector: Selector("levelOne"), userInfo:nil,repeats: true)