title: Is @autoreleasepool still required for modern iOS 8 NSOperation usage?
body: <p>I’ve read through <a href="https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ConcurrencyProgrammingGuide.pdf">Concurrency Programming Guide</a> </p>
  
  <p>In the guide the text states that GCD dispatch queues define their own @autoreleasepool pools and mentions that it’s still recommended to define one at a per dispatch level, yet for NSOperation nothing is said and the example code provided by Apple also does not show usage of the @autoreleasepool structure. The only place where @autoreleasepool is vaguely mentioned in the context of NSOperation is in the Revision History, </p>
  
  <blockquote>
    <p>2012-07-17 - Removed obsolete information about autorelease pool usage with operations.</p>
  </blockquote>
  
  <p>Looking at sample code available online, for ex. <a href="http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues">http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues</a> is making usage of @autoreleasepool in the implementations of NSOperations based objects, for example: </p>
  
  <pre><code>@implementation ImageDownloader
  
  - (void)main {
      @autoreleasepool {
        ...
      }
  }     
  @end
  </code></pre>
  
  <ol>
  <li>How should I be implementation modern NSOperation objects?</li>
  <li>What was the update Apple are referring to from 2012-07-17 ?</li>
  </ol>