应该使用
@property (nonatomic, weak, readonly)
或
@property (nonatomic, readonly)
?
Weak具有以下优势:如果实例被解除分配,则会将实例排除在外,但只是意味着弱吗?如果一个属性需要弱行为,那么是否应该明确声明属性为弱?
答案 0 :(得分:5)
如果你想保留一个你不拥有的对象的指针,但希望它只有存在才有效,那么你想要使用一个弱指针,因为当它被所有者取消分配时,你的指针将自动设置为nil,并且不会指向不应该存在的内存。
这两者都具有不同的含义,如果弱或强,只读也不会有任何差异。
@property (nonatomic, weak, readonly)
@property (nonatomic, readonly)
您还可以找到一些reference here。
答案 1 :(得分:2)
弱或强与readonly或readwrite无关。没有意味着另一个。
强大的关系取得所有权。弱者不会,但在删除相关对象时会收到无效的服务。
Readonly抑制一个setter(afaik)。该物业不能在同级以外更改。 Readwrite(如果没有声明则是默认值)允许更改属性。
基本上就是这样。这是两个彼此无关的设置。他们工作在所有可想象的comibnations。