title: iOS: When to assign & when to create new copy of objects being assigned to a property
body: <p>(someone please edit the title, clearly I'm not great with lingo yet)</p>
  
  <p>So, say I have an object called <code>DataRequester</code> whose job is to create an <code>NSURLConnection</code> and also be its delegate. I instantiate the object from my root view controller, and also provide a callback block (which is a property of <code>DataRequester</code>). When the <code>NSURLConnection</code> has finished loading, I call the callback and pass in the <code>NSData</code> as a parameter. </p>
  
  <p>Now, inside my root view controller, where the completion block is defined, I want to store the <code>NSData</code> in a property <code>NSData (strong,nonatomic) *responseData</code> of the root view controller. My question is, in the callback should I be using </p>
  
  <pre><code>weakSelf.responseData = [NSData dataWithData:passedInData]; 
  </code></pre>
  
  <p>or can I simply use:</p>
  
  <pre><code> weakSelf.responseData = passedInData;
  </code></pre>
  
  <p>(Where <code>RootViewController * __weak weakSelf = self)</code> Also the project uses ARC.</p>
  
  <p>A brief explanation of the right answer would be appreciated and help me to understand how memory is managed (I've done a bunch of reading, but a practical example/explanation would go a long way for me).</p>