If I have a read-only string property, is it necessary to specify strong
(or retain
) or copy
in the declaration? If I don't specify, is one of them assumed?
It seems to me the ownership attribute is only useful when you have a setter.
@property (nonatomic, readonly) NSString *name;
That is mostly correct. For a
readonly
property,strong
,retain
,weak
, andassign
have no effect. But if you also declare the property elsewhere asreadwrite
(most frequently in an anonymous category in the.m
), then the other modifiers need to match.