属性关键字的含义
属性关键字的含义 | |
---|---|
strong | 强引用 ,常使用在继承自NSObject的类,对象的引用计数+1 |
weak | 弱引用,不增加对对象的引用计数,当对象消失后自动把指针变成nil ; 为了防止循环引用,delegate使用weak |
assign | 用于基础数据类型(NSInteger,CGFloat)和C数据类型(int, float, double, char等); Assign不能自动置为nil,需要手动置为nil |
copy | NSString类型使用copy |
readwrite | 具有读写权限,表示其同时拥有getter 和 setter 方法 |
readonly | 只读操作,其只有getter 方法,没有setter法 |
nonatomic | 非原子性访问对于属性赋值的时候不加锁,多线程并发访问会提高性能,如果不加此属性则默认是两个访问方法都为原子型事务访问。 |
atomic | 和 nonatomic用来决定编译器生成的getter和setter是否为原子操作,atomic 设置成员变量的@property属性时 默认为是atomic 提供线程安全。在多线程环境下,原子操作是必要的否则会引起错误的结果。 |