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
, and assign
have no effect. But if you also declare the property elsewhere as readwrite
(most frequently in an anonymous category in the .m
), then the other modifiers need to match.
来源:https://stackoverflow.com/questions/9405211/does-an-objective-c-readonly-property-need-to-specify-strong-or-copy