swift - 如何在NSTimer中使用FIRE()

时间:2014-11-20 23:16:58

标签: ios swift

我需要在一个循环中循环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秒,我不明白为什么!

1 个答案:

答案 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)