原子和非原子属性
2017-04-06 本文已影响76人
红茶绅士
-
OC在定义属性时有
nonatomic
和atomic
两种选择 -
atomic
:原子属性,为setter
方法加锁(默认就是atomic
) -
nonatomic
:非原子属性,不会为setter
方法加锁 -
nonatomic
和atomic
对比 -
atomic
:线程安全,需要消耗大量的资源 -
nonatomic
:非线程安全,适合内存小的移动设备 -
iOS开发的建议
-
所有属性都声明为
nonatomic
-
尽量避免多线程抢夺同一块资源
-
尽量将加锁,资源抢夺的业务逻辑交给服务端处理,减小移动客户端的压力