Does an Objective-C readonly property need to spec

2019-02-16 21:18发布

问题:

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;

回答1:

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.