assign,retain,copy,weak,strong,readonly,nonatomic ,atomic 8个属性的特征
来源:互联网 发布:spss手机版软件 编辑:程序博客网 时间:2024/06/06 17:58
1.assign
是简单的值传递,没有retaincount.对于基础数据类型和C数据类型,id等非指针类型用这个。
2.retain
释放之前的对象(指针清空),再指定新的指针地址,同时 retainCount+1.
-(void) setName:(NSString *) newName {
if(name!=newName) {
[name release]; /指针清空
name = [newName retain];
}
}
3.copy
针对NSString使用,确保不受NSMutableString 影响。
4.weak
需要在启动ARC的情况下使用,和 assign 相同,但是也有一点不同之处。
5.strong
相当与retain
6.readonly与readwrite
没有setter。不能赋值。readwrite 既有read 又有write。
7.nonatomic
非安全性访问,效率高。一般用这个。
8.atomic
访问器是原子操作,在多线程环境下安全访问属性。
说明:
默认所有实例变量和局部变量都是Strong指针。
声明IBOutlet 一般用weak.
什么是野指针。当使用weak时,retainCount 没有加1.或者说对象的所有者数量没有改变
当所有者没有了,对象会被清空。对于weak 声明的这个指针指向的是地址将重置为nil.
而如果是assign 则需要手动设置为nil,否则将产生野指针。
这就是weak 和 assign 的一点点区别。
delegate 通常也是weak属性。
通常viewController 拥有 通用类,譬如UITabelView 之类的。而在通用类中具有协议属性,这个属性声明是weak,并且指向了
viewController.
- assign,retain,copy,weak,strong,readonly,nonatomic ,atomic 8个属性的特征
- 属性的特性assign,retain,copy,strong,weak,nonatomic,atomic,readonly,readwrite的区别与介绍
- IOS属性(@property)的修饰词assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite解释、以及一部分内存优化方法
- copy,assign,strong,retain,weak,readonly,readwrite,nonatomic,atomic,unsafe_unretained的使用与区别
- iOS 关键字 copy,assign,strong,retain,weak,readonly,readwrite,nonatomic,atomic,unsafe_unretained的使用与区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy,assign,strong,retain,weak,readonly,nonatomic的区别
- copy、retain、assign、readonly、readwrite、nonatomic、weak、strong的区别
- assign, copy, retain, nonatomic, strong, weak属性
- object-c中的assign,retain,copy,atomic,nonatomic,readonly,readwrite以及strong,weak
- JVM垃圾回收及调优总结
- Intent中的四个重要属性——Action、Data、Category、Extras
- APK 的安装与卸载
- linux 内核编译 (如何正确选择内核驱动)
- [LintCode]Segment Tree Build 构造线段树
- assign,retain,copy,weak,strong,readonly,nonatomic ,atomic 8个属性的特征
- javascript把数字格式化转换成货币型
- HDU 1358
- 数据库(第一范式,第二范式,第三范式)
- Windows 万能守护进程
- MySQL联合查询语法内联、左联、右联、全联
- java web项目中调用ocx遇到的问题!(无法调用)
- AVL实现平衡二叉树
- JAVA经典面试题:四线程写四个文件