title: property "assign" and "retain" for delegate
body: <p>For iOS developers, delegates are used almost everywhere. </p>
  
  <p>And seems like that we need to use "assign" instead of retain for a delegate like this</p>
  
  <pre><code>@property(assign) id delegate;
  </code></pre>
  
  <p>The reason is to avoid the circular loop issue <a href="https://stackoverflow.com/questions/918698/why-are-objective-c-delegates-usually-given-the-property-assign-instead-of-retain">Why are Objective-C delegates usually given the property assign instead of retain?</a></p>
  
  <p>I saw a lot of code and they still used "retain". So the question here is will we still get the circular loop issue if we use retain for a delegate?</p>
  
  <p>Thanks</p>