使用弱与readonly属性?

应该使用

@property (nonatomic, weak, readonly)

要么

@property (nonatomic, readonly)

如果它被解除分配,那么弱的优点是可以将实例排除在外,但是它只是意味着弱吗? 如果它想要弱行为,是否应该明确声明属性为弱?

如果你想保留一个你不拥有的对象的指针,但希望它只有存在才有效,那么你想要使用弱指针,因为当它被所有者释放时,你的指针会自动get设置为nil,不会指向不应该存在的内存。


这些都具有不同的含义,如果它是弱的或强的,则只读不会有任何差别。

 @property (nonatomic, weak, readonly) @property (nonatomic, readonly) 

你也可以在这里找到一些参考 。

弱或强不与readonly或readwrite相关。 没有意味着另一个。

强大的关系取得了所有权。 弱者不会,但在删除相关对象时会收到无效的服务。

Readonly抑制了一个setter(afaik)。 该物业不能在同级以外更改。 Readwrite(如果没有声明则是默认值)允许更改属性。

基本上就是这样。 这是两个彼此无关的设置。 他们工作在所有可想象的comibnations。