What does the "retain" mean in this case and is it even legal ?
There won't be a synthesized -(void)setSomeString:(NSString
*)aString method because the property is readonly. Does this cause
the synthesis of an accesor like the following?
- (NSString *)someString
{
return [[someString retain] autorelease];
}
You will get that implementation, but because you haven't specified
'nonatomic', not because of the 'retain'.
Re putting in the 'retain', though: You may want to publicly declare
the property readonly, but redeclare it readwrite in a private class
extension. To redeclare the property, you have to use the same
attributes that you originally specified (except for readonly/
readwrite), so if you want the private setter to use retain you must
declare the public property in the same way.