title: property_getAttributes() does not make difference between retain, strong, weak and assign properties when set read-only
body: <p>I'm trying to get the property attributes of an object with the <b>property_getAttributes()</b> runtime function. Some properties are set <b>read-only</b>. But the problem comes when I try to make the difference between retain/strong, weak and assign properties. e.g.:</p>
  
  <p>Let's say we have: </p>
  
  <pre><code>@interface MyObject : NSObject
  @property (assign, readonly) NSObject *prop1;
  @property (strong, readonly) NSObject *prop2;
  @property (weak, readonly) NSObject *prop3;
  @end
  </code></pre>
  
  <p>We get the property list and print </p>
  
  <pre><code>int outCount;
  objc_property_t *properties = class_copyPropertyList([MyObject class], &amp;outCount);
  for(i = 0; i &lt; outCount; i++) {
      objc_property_t property = properties[i];
      const char *c_attributes = property_getAttributes(property);
      printf("%s", c_attributes);
  }
  free(properties);
  </code></pre>
  
  <p>The result is:</p>
  
  <pre><code>T@"NSObject",R,V_prop1
  T@"NSObject",R,V_prop2
  T@"NSObject",R,V_prop3
  </code></pre>
  
  <p>...so no specific code for weak, strong/retain, assign properties when they are read-only :(</p>
  
  <p><b>The question is</b>: is there any other way to know if the property is weak, strong/retain, assign?</p>