property详解(二)
来源:互联网 发布:js的if else 编辑:程序博客网 时间:2024/06/05 18:28
2.1 可读性
readwrite:这个参数,使得声明的变量有get方法和set方法
readonly:这个参数,使得声明的变量只有get方法,而set方法需要用户自己去定义
readonly参数的作用,就是为了防止外部类会对该变量进行修改。
其中,readwrite是默认的
2.2 原子性
atomic:原子性,可以提供多线程安全。 它会增加一定的开销,但是在多线程环境下,应该进行原子操作,否则有可
能引起错误的结果。
nonatomic:非原子性,不能提供多线程安全。它会禁止多线程,从而保护变量。同时,它不会有额外的开销,所以相
比起原子性,它有着更好的性能。
其中,atomic是默认的。但是,这种方式比较浪费资源。所以,在没有使用多线程的情况下,最好还是使用nonatomic。
2.3 strong和weak
strong和weak是由ARC新引入的对象变量属性。
strong关键字,可以为对象添加一个拥有者。
使用weak关键字,不会为对象添加拥有者。声明为weak的指针,指针指向的地址一旦被释放,这些指针都将被赋值为 nil。这样的好处能有效的防止野指针。
如果一个对象在某段时间中反复加载,而你又不希望每次加载都要重新alloc 的话,那就用strong,strong 保证对此对象保持一个强引用,对于这个对象,只要有1个strong引用的话,那它就不会释放,当然多个strong同时作用于它也不会释放。
如果一个对象在某段时间只会加载一次,并且加载之后确定不再使用了,那就可以使用weak,这样当其他原因导致引用计数减1(比如 removefromsuperview)的时候,此对象就自动释放了。无需再在delloc 里面再release一次,但你要保证释放之后确实不再使用此对象,否则将导致错误。
ARC的规则是:只要对象还存在拥有者(即还有变量指向对象),对象就会保持在内存中。
- property详解(二)
- 【Android 动画】Property Animation详解(二)
- property详解(一)
- css简介(二)property
- Python “属性(property)”详解
- @property详解
- @property 详解
- @property详解
- Property详解
- @property详解
- Android属性动画---Property Animation(二)
- Android属性动画---Property Animation(二)
- Android动画之Property Animation(二)
- Android属性动画Property Animation(二)
- Property List Programming Guide(二)
- Android 属性动画(Property Animation)二
- (转载)Objective-c的@property 详解
- Python进阶之“属性(property)”详解
- shell 中变量的截取
- 软件性能测试理论手札(一)
- 操作系统思考 第四章 文件和文件系统
- AIS原始数据
- OpenCV训练自己的人脸检测级连分类器并测试
- property详解(二)
- Linux kernel Low Level debug (DEBUG_LL)
- canvas图片数字计时
- JS学习笔记(1)
- Android中文本字体的问题
- .net Linq 基础
- Let's Encrypt 给网站加 HTTPS 完全指南certbot
- *.p12 生产推送文件*.pem
- 多线程