title: readonly public, readwrite private property
body: <p>I saw this <a href="https://stackoverflow.com/questions/4837565/objective-c-private-public-properties-making-a-property-readonly-for-outsi">thread</a>, but am not completely clear in iOS7 given the Programming guide says you can leave out the <code>@synthesise</code> keyword for properties.</p>
  
  <p>I want to have a <code>@property</code> that is <code>readonly</code> externally, but <code>readwrite</code> internally. Can I use just the <code>@property</code> keyword like this?</p>
  
  <p>EDIT: What would be considered more correct, or at least more idiomatic, of the answers provided. To have a separate <code>readwrite</code> property in a Class extension or access the ivar directly in the implementation?</p>
  
  <p>EDIT: To show that I am using a Class Extension, as suggested in answers.</p>
  
  <pre><code>//.h
  @interface CACustomerAuthenticator : NSObject
  @property (nonatomic, copy, readonly) NSString *username;
  @end
  
  //.m
  @interface CACustomerAuthenticator ()
  @property (nonatomic, copy, readwrite) NSString *username;
  @end
  </code></pre>