ios 属性中常用修饰词的总结
来源:互联网 发布:excel横纵数据互换 编辑:程序博客网 时间:2024/06/01 09:01
一、assign (ARC/MRC)
1、assign在ARC和MRC中都是存在的
2、assign一般用来修饰基本数据类型
3、assign也可用来修饰对象,但是,对象的引用计数不会+1(与strong的区别)
4、assign如果用来修饰对象属性,当对象销毁后指针不会指向nil,会出现野指针错误(与weak的区别)
5、在MRC用assign来修饰代理,是为了防止循环引用。
二、weak(ARC)
1、弱指针是针对对象的修饰词 , 就是说它不能修饰基本数据类型 。
2、weak修饰的对象,引用计数不会+1,即直接赋值
3、弱引用是为打破循环引用而生的
4、它所指向的对象如果被销毁 , 它会指向 nil . 而 nil 访问什么鬼都不会报野指针错误 .
三、strong(ARC)
1、直接赋值,对象引用计数+1
2、功能等价于MRC里面的retain
四、copy(ARC/MRC)
1、在 MRC 时是这样做的 release 旧对象( 旧对象计数器 -1 ) , copy 新对象( 新对象计数器 +1 ) , 然后指向新对象 。
2、在 ARC 时是这么干的 copy 新对象( 新对象计数器 +1 ) , 然后指向新对象 。
五、原子属性(atomic)和非原子属性(nonatomic)(ARC/MRC)
非原子属性(nonatomic):
1、不对set方法加锁(@synchronized),互斥锁是利用线程同步实现的 , 意在保证同一时间只有一个线程调用 set 方法 。
2、性能好
3、线程不安全
原子属性(atomic):
1、原子属性就是对生成的 set 方法加互斥锁 @synchronized(锁对象)
2、需要消耗系统资源
3、还有 get 方法 , 要是同时 set 和 get 一起调用还是会有问题的 . 所以即使用了 atomic 修饰 还是不够安全 .
六、readOnly(只读)、readWrite(读写)
readOnly:
1、只读属性,意味着只合成getter方法
2、不想把暴露的属性被别人替换,可以使用readOnly修饰
readWrite:
1、生成getter和setter方法
2、不用readOnly修饰时候,默认为readWrite
- ios 属性中常用修饰词的总结
- iOS属性中常用修饰词的总结
- IOS属性修饰词
- iOS 常用修饰词
- IOS中属性的关键修饰词:strong weak assign copy retain等。。
- Java修饰词的总结
- Java修饰词的总结
- Java修饰词的总结
- Java修饰词的总结
- 属性修饰词
- ios中UIView的常用属性
- iOS UILable常用属性总结
- c语言的____ 修饰词___总结
- iOS:属性、修饰词(内存管理) 及其对应成员变量 、ARC
- iOS学习总结----UIScrollView的常用属性及方法
- IOS属性(@property)的修饰词assign、weak、strong、retain、copy、nonatomic、atomic、readonly、readwrite解释、以及一部分内存优化方法
- java中final修饰词的使用
- java中static修饰词的作用
- 相对路径和绝对路径的区别
- CentOS7使用virt-p2v将RHEL6.7的物理机转化为kvm虚拟机
- <context:component-scan>使用说明
- hibernate实现表联查并获取某个字段的最大值(随笔)
- 购物商城shopping连载(3)
- ios 属性中常用修饰词的总结
- 蓝桥杯省赛赛后感想
- Android ResultReceiver 汇总
- Android调用百度地图Web端接口,实现百度定位、导航
- 网络协议
- 魅族多机房部署方案
- 机器学习经典书籍--入门书-入门--深入--数学基础
- Quartz cron 表达式的格式
- 终于调通了从上到下,从驱动到应用,android