title: Autorelease then retain for setters
body: <p>According to the <a href="http://google-styleguide.googlecode.com/svn/trunk/objcguide.xml?showone=Autorelease_Then_Retain#Autorelease_Then_Retain" rel="nofollow">Google Objective-C Style Guide</a>, we should autorelease then retain as so:</p>
  
  <pre><code>- (void)setFoo:(GMFoo *)aFoo {
    [foo_ autorelease];  // Won't dealloc if |foo_| == |aFoo|
    foo_ = [aFoo retain];
  }
  </code></pre>
  
  <p>In this case, foo_ will not be deallocated if being set to the same instance, making for a more defensive setter.</p>
  
  <p>My question is, is this how @property &amp; @synthesize work?</p>