How to get an NSTimer to stop repeating after a condition is met

bhzag picture bhzag · Jun 19, 2014 · Viewed 10.4k times · Source

I have two NSTimers that I programmed to make a button appear on the screen and then disappear. How can I program it to stop adding and removing buttons once a condition is met?

Here is my code:

   var timerRemoveButton = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "removeButton", userInfo: nil, repeats: true)
   var timerAddButton = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "addButton", userInfo: nil, repeats: true)

Answer

Oleksandr Karaberov picture Oleksandr Karaberov · Jun 19, 2014

You can invalidate them as in usual Objective-C. So when your condition is met just write:

timerRemoveButton.invalidate()
timerAddButton.invalidate()

This will remove your timers from an NSRunLoop object.