The timer does its best to execute a “fixed” schedule, that is, every second.
On the other hand, a call to performSelector:afterDelay at the end of a function that was executed, say, 500 ms to execute, will cause the function to be called every 1500 ms (500 ms that were required to execute + 1 s delay).
Thus, the timer is more reliable. As H2CO3 said, forget about performance, this is not a problem with such simple tasks.
source share