I've discovered CADisplayLink for IOS 3.1+ which triggers events when the display has been refreshed, effectively allowing you to synchronise with display updates without having to use NSTimer.
Is there an equivalent for timing when writing opengl applications under macos/cocoa?