As written, this is an infinite loop, creating an NSTimer
every loop iteration.
Try it without the while
loop. This should cause [self timerHandle]
to be invoked on interval x
by a single background thread/timer. The Apple guide to NSTimer usage (including as others point out, how to properly stop your timed task) is here.