OC 属性的性质

我们常常看到在.h文件里的属性有这样几个单词

@property (nonatomic,readwrite,copy) NSString *name;

接下来是属性的性质的集合

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