OC 属性的性质
2015-05-13 13:56
67 查看
我们常常看到在.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 *时,经常用到。
@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 *时,经常用到。
相关文章推荐
- OC 中,私有方法(默许的私有方法)and延展(类目另种用法的名称)and私有属性
- 在oc中如何修改控件的一些只读属性
- OC 属性的属性 点语法的使用 KVC
- iOS runtime探究(三): 从runtime开始理解OC的属性property
- OC-属性与成员变量的简单介绍与区别
- 第02天OC语言(04):结构体作为对象属性
- OC属性总结
- OC属性总结全!
- oc基础知识:属性、协议和分类
- OC 基础之----属性
- OC中的字符串属性(深拷贝和浅拷贝)
- iOS 接入 芝麻信用 iOS开发-Xcode-OC_JSON_Plugin-将Json直接转成模型对应属性 iOS开发-直播APP常用动画效果
- js的性质和一些对象及属性
- Expression is not assignable (OC为什么不能直接修改结构体属性)!
- [OC][转]UITableView属性及方法大全
- OC归档的对象里面包括其他类的属性!
- OC成员变量和属性
- OC 【在类实现中如何使用 带下划线的成员变量&属性的点语法】
- OC 属性 练习题
- OC中属性self.a与_a访问的区别