@property的使用策略
2016-12-02 本文已影响30人
YANGGQ
@property (atomic,strong) NSArray *array;
@property (nonatomic,assign) int intValue;
- 原子(atomic)
- atomic 内部会为setter方法加锁,提供多线程安全。是防止在写未完成的时候被另外一个线程读取,造成数据错误,但是需要耗费性能。
- 非原子(nonatomic)
- nonatomic: 不会为setter方法加锁,非线程安全,在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了 nonatomic ,那么访问器只是简单地返回这个值,性能好。
- 建议:开发中建议所有的属性都优先使用非原子属性,如果确实发生了多线程访问某一个属性的情况,再具体修改该属性为atomic,可以提高程序性能又保证安全
- assign
-
基本数据类型
、枚举
、结构体
等非OC对象类型
-
- weak
- OC对象类型(比如NSArray、NSDate、NSNumber、模型类)
- strong
- OC对象类型(比如NSArray、NSDate、NSNumber、模型类)
- 一个对象只要有强指针引用着,就不会被销毁
- copy
- 一般用在
NSString
、block
类型上
- 一般用在