title: What does this objective-c property synthesis warning mean?
body: <p>Since upgrading to Xcode 5.1, I'm starting to see the following warning in some code my project uses. I'm trying to figure out what it means.</p>
  
  <p>Warning: <code>Auto property synthesis will not synthesize property 'responseHeader' because it is 'readwrite' but it will be synthesized 'readonly' via another property</code></p>
  
  <p>The code where it's occurring, in the .m file:</p>
  
  <pre><code>@interface S3Response ()
  @property (nonatomic, readwrite, retain) NSDictionary *responseHeader;
  @end
  </code></pre>
  
  <p>The previous declaration of the property, in the .h file:</p>
  
  <pre><code>@property (nonatomic, readonly) NSDictionary *responseHeader;
  </code></pre>
  
  <p>There is no <code>@synthesize</code> statement for that property, nor are <code>responseHeader</code> or <code>setResponseHeader</code> defined as methods. There is however an explicit definition of an ivar named <code>responseHeader</code>.</p>
  
  <p>Seems pretty straightforward to me: property is declared as read-only for users of the class, but read-write locally so the class can set it.</p>
  
  <p>What does this warning mean, and what should I do about it? </p>