我们常常看到在.h文件里的属性有这样几个单词
@property (nonatomic,readwrite,copy) NSString *name;
接下来是属性的性质的集合
- nonatomic:非原子性的 ;
- atomicity: 原子性 (1,2两点我也搞不清楚,百度后,简单来说,如果你希望变量值安全的话就使用atomic,如果你希望速度快,效率高的话,就用nonatomic);
- readwrite: 读写权限 具有getter与setter方法,有@synthesize实现;
- readonly: 只读权限 只具有getter方法,也是由@synthesize实现;
- assign: “setter方法”只会执行针对简单的赋值操作。默认的
- strong: 为这种属性设置新值的时候,“setter方法”会先保留新值,并释放旧值,再将新值设置上去
- weak: 为这种属性设置新值的时候,“setter方法”既不保留新值,也不释放旧值。这个喝assign类似,但是在属性指的对象遭到摧毁的时候,属性值也会清空
- unsafe_unretained:与assign相同,但是更适用于“对象类型”,摧毁时也不会清空
- copy:此特质所表达的所属关系与strong类似,然而setter方法并不保留新值,而是将其拷贝。当NSString *时,经常用到。