title: Why should I choose GCD over NSOperation and blocks for high-level applications?
body: <p>Apple's Grand Central Dispatch reference says:</p>
  
  <blockquote>
    <p>"...if your application needs to operate at the Unix level of the
    system—for example, if it needs to manipulate file descriptors, Mach
    ports, signals, or timers. GCD is not restricted to system-level
    applications, but before you use it for higher-level applications, you
    should consider whether similar functionality provided in Cocoa (via
    NSOperation and block objects) would be easier to use or more
    appropriate for your needs.".</p>
  </blockquote>
  
  <p><a href="http://developer.apple.com/library/ios/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html" rel="noreferrer">http://developer.apple.com/library/ios/#documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html</a></p>
  
  <p>I can't actually think of situations, for high-level applications, in which the use of GCD is mandatory and NSOperation could/should not be used.</p>
  
  <p>Any thoughts?</p>