title: How to schedule iOS method call at exact time
body: <p>I would like iOS to call my object's method at an <strong>exact</strong> time in the future. The time to call the method could be up to 4 hours from the current time.</p>
  
  <p>I know I could use <a href="https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSTimer_Class/Reference/NSTimer.html" rel="nofollow noreferrer">NSTimer</a>, but I'm  concerned it won't be precise enough for my application (i.e., within 30-50 ms): "A timer is not a real-time mechanism; it fires only when one of the run loop modes to which the timer has been added is running and able to check if the timer’s firing time has passed."</p>
  
  <p>I've also seen mentions of using <a href="https://developer.apple.com/library/ios/documentation/QuartzCore/Reference/CADisplayLink_ClassRef/Reference/Reference.html" rel="nofollow noreferrer">CADisplayLink</a> for precision, but more in the context of <a href="https://stackoverflow.com/questions/4485072/accurate-timing-in-ios">interval timing</a>.</p>
  
  <p>Another alternative may be <a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/Introduction/Introduction.html" rel="nofollow noreferrer">threading</a> to avoid delays caused by the system run loop.</p>
  
  <p>Which is considered "best" choice for what I want to do, or is there something else I should look at? Or is NSTimer precise enough if very little else is really going on in my app? Thanks!</p>