应该使用
@property (nonatomic, weak, readonly)
或者
@property (nonatomic, readonly)
?
Weak 的优势在于,如果实例被释放,则将其归零,但 readonly 是否意味着弱?如果需要弱行为,是否应该明确声明属性为弱?
应该使用
@property (nonatomic, weak, readonly)
或者
@property (nonatomic, readonly)
?
Weak 的优势在于,如果实例被释放,则将其归零,但 readonly 是否意味着弱?如果需要弱行为,是否应该明确声明属性为弱?
如果你想保留一个指向你不拥有的对象的指针,但希望它只在它存在时才有效,那么你想使用弱指针,因为当它被所有者释放时,你的指针会自动设置为 nil 并且不会指向不应该指向的内存。
这两个都有不同的含义,如果它是弱或强, readonly 没有任何区别。
@property (nonatomic, weak, readonly)
@property (nonatomic, readonly)
您还可以在此处找到一些参考。
弱或强与只读或读写无关。无暗示对方。
牢固的关系需要所有权。弱者不会,但它会收到在删除相关对象时被取消的服务。
Readonly 禁止设置器(afaik)。不能从其类之外更改该属性。读写(如果没有说明,这是默认设置)允许更改属性。
基本上就是这样。那是两个不相关的设置。它们适用于所有可以想到的组合。