title: Should I declare variables in interface or using property in objective-c arc?
body: <p>approach 1:</p>
  
  <pre><code>@interface MyController : UIViewController {
      UILabel *myText;
  }
  
  @property (nonatomic, strong) UILabel *myText;
  </code></pre>
  
  <p>approach 2:</p>
  
  <pre><code>@interface MyController : UIViewController
  @property (nonatomic, strong) UILabel *myText;
  </code></pre>
  
  <p>approach 3:</p>
  
  <pre><code>@interface MyController : UIViewController {
      UILabel *myText;
  }
  </code></pre>
  
  <p>I have read some articles talking about this kind of stuff but I still do not really realize which approach I have to adopt.</p>
  
  <p>I also found that someone said approach 1 is a old way so I would like to know the best practice for ios sdk 6 using ARC.</p>
  
  <p>I know that declaring variables using property is a easy way for generating getter and setter and someone suggested using it. However, I would like to ask in case a variable is not for calling by another class, is it necessary for the variable using property? and set it as private variable inside the interface? Or is it better for a variable only declaring inside the interface? I would like to learn the best practice so please forgive me if this is a silly question.</p>
  
  <p>Moreover, some developers write @synthesize in this way</p>
  
  <pre><code>@synthesize myText=_myText;
  </code></pre>
  
  <p>but some write this:</p>
  
  <pre><code>@synthesize myText;
  </code></pre>
  
  <p>I would also want to know the difference and which one is preferable?</p>
  
  <p>Thank you very much!</p>