The first thing which isn't apparently obvious is that while you are allowed to call code which appears to change the frequency of a timers callback (ie. to make it faster or slower) this code will have NO effect within the program.
The second thing to consider is that you have to ensure you 'invalidate' a timer to stop it from triggering, simply setting it to 'nil' is not enough.
Code: Select all
[self._timer invalidate];
self._timer = nil;