title: I haven't understood weak and strong references
body: <p>By books first explains the problem (using ARC) about "unvalid" references, like in this example:</p>
  
  <pre><code>NSDate* date1=[[NSDate alloc]init];
  NSDate* date2=date1;
  [date1 release];
  NSLog(@"%@",date2); // bad access
  </code></pre>
  
  <p>So I have understood the retain/release mechanism: in this case the instruction would be:</p>
  
  <pre><code>date2=[date1 retain];
  </code></pre>
  
  <p>But when it talks about strong/weak references, it sounds like a contradiction to me:</p>
  
  <p>"By default, references are strong. If you assign an object to a strong reference, ARC assumes that you want that object to stick around and retains it implicitly"</p>
  
  <p>Isn't this a contradiction of what has said before?<br>
  date2 is strong by default, so it should implicitly retain date1 and there wouldn't be a bad access exception.<br>
  Of course I have misunderstood something, could someone explain this better to me?</p>