2014-11-20 116 views
1

我需要一個週期2.5秒的5次循環,但是,在單個循環中按鈕誘餌的壓力不會中斷調度。 我使用的方法火(按下按鈕)停止重複計時器而不會中斷其常規發射計劃,但我不知道,後續週期比定義的2.5秒更短:swift - 如何在NSTimer中使用FIRE()

.......

@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

選擇:「LEVELONE」 - 作品也 – 2014-11-21 00:42:16

回答

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) 
+0

感謝您的答覆,但與「無效」停止整個過程,我只想接近,單循環(不全部),並在下一個循環中重新啓動。謝謝 – JoeyTrl 2014-11-21 12:14:54