@property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?
nonatomic atomic strong weak assign copy retain readwrite readonly
修饰符用来指示编译器应该生成怎样的setter和getter。如果你自己写 getter/setter,那 atomic/nonatomic/retain/assign/copy 这些关键字只起提示作用。
1.原子性
atomic 和 nonatomic 的区别在于,系统自动生成的 getter/setter 方法不一样
1.1 atomic 默认,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。效率低,保证访问setter和getter方法的完整性,但不一定线程安全。
1.2 nonatomic ,则不使用自旋锁。线程不安全,效率高。
2.读/写权限 readwrite(读写) 默认 readonly (只读)
网友评论