属性的意义--Effective笔记

偏移量?

属性是对变量的封装表现。

属性特质设定会影响编译器所生成的存取方法。
原子性 (atomicity nonatomic) 针对多线程下,加锁,因为objective-c遗留问题atomicity性能开销太,还不能确定保证线程安全,所以一般不用。

读写权限(readwrite readonly) 字面意思就知道

内存管理意义(assign strong weak copy)
assign 针对值类型(NSInteger,CGFloat等)的简单赋值操作
strong 声明该属性定义了一种“拥有关系”。为这种属性设置新值时,设置方法会保留新值,并释放旧值,然后再将新值设置上去
weak 声明该属性定义了一种”非拥有关系“。为这种属性设置新值时,设置方法即不保留新增,也不释放旧值。此特质同assign类似,然而在属性所指的对象操到摧毁时,属性值也会清空
copy 此特质所表达的所属关系与strong类似。然而设置方法并不保留新值,而是将其”拷贝“

方法名 (getter= setter=)
getter= 指定“获取方法”的方法名。
setter= 指定“设置方法”的方法名

1,可以用@property语法来定义对象中所封装的数据
2,通过“特质”来指定存储数据所需要的正确语义
3,在设置属性所对应的实例变量时,一定要遵从该属性所声明的语义。
4,开放iOS程序时应该使用nonatomic属性,因为atomic属性会验证影响性能。

你可能感兴趣的:(属性的意义--Effective笔记)