title: Correct handling of asynchronous NSObject
body: <p>I have a situation similar to this:
  <a href="https://stackoverflow.com/questions/2698591/objective-c-how-to-use-memory-managment-properly-for-asynchronous-methods">Objective-C: How to use memory managment properly for asynchronous methods</a></p>
  
  <p>I have an object that asynchronously downloads &amp; parses an xml doc. It then has a delegate method that transfers the data it retrieved to the caller.</p>
  
  <p>My 2 questions are:</p>
  
  <p>When do I release the data retrieving object? The link I posted above gives 2 answers, one says release in the delegate and one says release immediately, which is correct (or which is better if both answers are correct)</p>
  
  <p>My second question is, what is the best way to transfer the retrieved data to the caller? At the moment I have</p>
  
  <pre><code>self.imagesDataSource = [articleImagesParserObject.returnedArray copy];
  </code></pre>
  
  <p>I used copy because, as far as I understand, that makes the mutable array immutable. Is that correct?</p>