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