title: Objective C - Using property get accessor vs directly using iVar
body: <p>I was wondering what exactly are the differences between using the (get) accessor for reading the value of property and directly using the iVar?</p>
  
  <p>Say I have a class which declares a property:</p>
  
  <pre><code>@interface Foo : NSObject
  
  @property (strong) NSString *someString;
  
  @end
  </code></pre>
  
  <p>And in the implementation I'm using it. Are there any differences between the following two lines:</p>
  
  <pre><code>someLabel.text = self.someString;
  
  someLabel.text = _someString;
  </code></pre>
  
  <p>For set accessors it's clear. Afaik for strong properties the accessor takes care of retain and release (an interesting 'side question' would be if ARC changes that, i.e. does setting the iVar directly [assuming it's not an __weak iVar] also retain and release correctly using ARC), also KVO requires the use of accessors to work properly etc. But what about getters?</p>
  
  <p>And if there's no difference, is there one way considered best practice?</p>
  
  <p>Thx</p>