@property扩号内支持的几个属性
来源:互联网 发布:fontawesome mac 编辑:程序博客网 时间:2024/05/17 22:23
1,getter=getterName,setter=setterName,设置setter与getter的方法名
2,readwrite,readonly,设置可供访问级别
2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题
3,retain,setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序(CC上有相关资料)
4,copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再Copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。
2,readwrite,readonly,设置可供访问级别
2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题
3,retain,setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序(CC上有相关资料)
4,copy,setter方法进行Copy操作,与retain处理流程一样,先旧值release,再Copy出新的对象,retainCount为1。这是为了减少对上下文的依赖而引入的机制。
5,nonatomic,非原子性访问,不加同步,多线程并发访问会提高性能。注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问。
它要与@synthesize一起使用才有意义。
atomic的意思就是setter/getter这个函数是一个原语操作。如果有多个线程同时调用setter的话,不会出现某一个线程执行setter全部语句之前,另一个线程开始执行setter情况,相当于函数头尾加了锁一样。
nonatomic不保证setter/getter的原语行,所以你可能会取到不完整的东西。
比如setter函数里面改变两个成员变量,如果你用nonatomic的话,getter可能会取到只更改了其中一个变量时候的状态,这样取到的东西会有问题。
如果不需要多线程支持的话,当然nonatomic就够用了,另外由于不涉及锁操作,所以它执行相对快点
- @property扩号内支持的几个属性
- property的几个属性区别
- 有关属性对话框(property sheet )的几个提示
- 有关属性对话框(property sheet )的几个提示
- iphone的property属性
- @property的属性参数
- ios的@property属性
- android的property属性
- NSArray 的@property属性
- @property的属性
- ios的@property属性
- property 的成员属性
- @property属性的用法
- @property属性的用法
- @property的默认属性
- @property的属性详解
- @property 的属性
- @property的属性
- 什么是泛型?
- 监听HOME键
- PhoneGap API中文帮助文档——Geolocation(地理位置)
- javascript 中的闭包(一)
- 微信4.2版本雷锋网抢先独家评测 支持视频和语音通话
- @property扩号内支持的几个属性
- A Quick and Dirty Guide to CVS (ZZ)
- python 3.0学习笔记之二------python基础小知识
- 寻我,无我
- plist文件,Property List 文件
- linux下通过命令行把文件拷贝到U盘上
- delphi 金山词霸屏幕取词技术
- CxImage中文文档地址迁移到www.mingjianhua.com
- 央行又降息了,吊死们何去何从?!