If you are just wanting to measure elapsed time, store the time when put in background and compute difference when in foreground again.
This is a battery-saving “feature” of iOS – apps are suspended while in background with a couple of specific exceptions like media players (so you can keep pumping out audio, location services (so navigation can track where you are), and not much else. The exact list escapes my memory.
As I recall, a plist entry is required to request background execution, and I believe the App Store may have restrictions on what is allowed to request it.
In the case of a clock, I believe the appropriate behavior would be to just paint the current time in the event as opposed to incrementing something in your code. (If the clock is a stopwatch type thing, store the time it started and compute elapsed time when updating the UI. Don’t increment in the timer.)