IOS学习—@property的解析
来源:互联网 发布:sql 几种树形结构 编辑:程序博客网 时间:2024/06/05 07:28
根据Objective-C官方文档中的Property说明,@property中的声明分类为以下几种:
1、声明属性的访问方法:
- getter = getterName
- setter = setterName
声明访问属性的设置与获取方法名。
2、声明属性写操作权限:
- readwrite
- readonly
3、声明写方法的实现:
- assign
声明在setter方法中,采用直接赋值来实现设值操作。如:
<span style="font-size: 14px;">-(void)setName:(NSString*)_name{ name = _name;}</span>不做任何内存管理(默认,用于非OC对象)。
- retain
声明在setter方法中,采用对设过来的retain加1操作。如:
<span style="font-size:14px;">-(void)setName:(NSString*)_name{ //首先判断是否与旧对象一致,如果不一致进行赋值。 //因为如果是一个对象的话,进行if内的代码会造成一个极端的情况:当此name的retain为1时,使此次的set操作让实例name提前释放,而达不到赋值目的。 if ( name != _name){ [name release]; name = [_name retain]; }}</span>release旧值,retain新值(用于OC对象)。
- copy
调用此实例的copy方法,设置克隆后的对象。
release旧值,copy新值(一般用于NSString *)。
该参数一般用于NSObject类及其子类的对象,这些对象在赋值时实现深拷贝,即属性name指向的对象是赋值给它的对象的副本。
4、访问方法的原子性:
- nonatomic
代表对属性赋值的时候不加锁,即在多线程环境下访问可能会出现数据错误。
- atomic
如果需要在多线程环境下运行,为保证数据不会出现错误,可使用atomic参数,它会对属性赋值的时候加锁。
0 0
- IOS学习—@property的解析
- 学习日记-property的参数解析
- IOS 学习之 —— @property详解
- iOS学习之——@Property
- Hibernate的Property解析
- Hibernate的Property解析
- Hibernate的Property解析
- ios的@property属性
- ios的@property属性
- ios 学习笔记之property
- iOS学习笔记16—@synthesize obj=_obj的意义详解 @property和@synthesize
- iOS学习笔记16—@synthesize obj=_obj的意义详解 @property和@synthesize
- iOS学习笔记1(结合项目)---oc的@property属性
- IOS学习第三篇 ——@property属性
- 浅析iOS的@property属性
- iOS中的@property的属性
- 黑马程序员之ios学习总结——09 OC语言的点语法、@property和@synthesize
- iOS学习笔记3-iOS中@property和@synthesize的用法
- UDP 发送和接收
- [codeigniter 二]、分析CI结构和CI是如何工作的
- android:Tabhost使用方法
- mknod
- 实习11天
- IOS学习—@property的解析
- 黑马程序员_java反射机制的概述
- leetcode:Factorial Trailing Zeroes
- 用R解析Mahout用户推荐协同过滤算法(UserCF)
- 瀑布流接口的设计以及应用(一)
- 如何将一块移动硬盘分区成mac专区和windows专区
- 炙热的7月
- 《华胥引》下载地址
- java的myeclipse,java页面修改默认的javadoc方法