We call startTimer function to start a timer. When we wanted to stop it we call stopTimerTest function but after we called stopTimer function the timerTestAction keeps firing. T
Most likely you've called startTimer
twice without calling stopTimerTest
. If you do that, you'll lose your pointer to the original timer and never be able to invalidate it.
The typical approach is to manage invalidation as a part of setting:
var timerTest : Timer? = nil {
willSet {
timerTest?.invalidate()
}
}
Then stopping is just setting to nil:
func stopTimerTest() {
timerTest = nil
}