iOS中@property
2016-02-13 16:40
387 查看
二.@property
1.生成get与set方法的声明
2.生成get与set方法的简单实现
3.如果你没有声明对象成员变量,那么他会自动生成一个_开头的成员变量
@property参数分为4类:
1.与set方法内存管理相关参数
retain:要生成符合内存管理原则的set方法(应用与对象类型),引用计数会+1;
assign:直接赋值,(对象类型,基本数据类型而不是NS对象),引用计数不会+1;
copy: 建立一个索引计数为1的对象,然后释放旧对象;
简单的基本数据类型指的是:int,float,double,char,对象类型指的是NS开头的对象
copy与retain的区别:
copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString 对象,地址为0×1111 ,内容为@”STR”
copy 到另外一个NSString 之后,地址为0×2222 ,内容相同,新的对象retain为1 ,旧有对象没有变化
retain 到另外一个NSString 之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain 是指针拷贝,copy 是内容拷贝。
2.多线程相关
nonatomic:不生成多线程线管代码
atomic: 生成多线程线管代码(不写默认的就是这个方式)
3.是否生成set与get方法
readwrite:可读可写属性
readonly:只读属性,只生成get方法,如果要修改属性,只能在init方法里赋值
4.set与get方法名称相关的参数
setter:设置生成的set方法名称
getter:设置生成的get方法名称
两者常用于BOOL类型的方法里。来修改原本的set,get方法。
@property(nonatomic,assign,setter:,getter:)int weight;
@property(nonatomic,retain,readonly)NSString name;
1.生成get与set方法的声明
2.生成get与set方法的简单实现
3.如果你没有声明对象成员变量,那么他会自动生成一个_开头的成员变量
@property参数分为4类:
1.与set方法内存管理相关参数
retain:要生成符合内存管理原则的set方法(应用与对象类型),引用计数会+1;
assign:直接赋值,(对象类型,基本数据类型而不是NS对象),引用计数不会+1;
copy: 建立一个索引计数为1的对象,然后释放旧对象;
简单的基本数据类型指的是:int,float,double,char,对象类型指的是NS开头的对象
copy与retain的区别:
copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString 对象,地址为0×1111 ,内容为@”STR”
copy 到另外一个NSString 之后,地址为0×2222 ,内容相同,新的对象retain为1 ,旧有对象没有变化
retain 到另外一个NSString 之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain 是指针拷贝,copy 是内容拷贝。
2.多线程相关
nonatomic:不生成多线程线管代码
atomic: 生成多线程线管代码(不写默认的就是这个方式)
3.是否生成set与get方法
readwrite:可读可写属性
readonly:只读属性,只生成get方法,如果要修改属性,只能在init方法里赋值
4.set与get方法名称相关的参数
setter:设置生成的set方法名称
getter:设置生成的get方法名称
两者常用于BOOL类型的方法里。来修改原本的set,get方法。
@property(nonatomic,assign,setter:,getter:)int weight;
@property(nonatomic,retain,readonly)NSString name;
相关文章推荐
- iOS内存管理之我所见
- [iOS]iOS的字号转换问题
- [iOS]APP代码实践:建立一个辅助的APP类,减少对AppDelegate的修改
- IOS 事件传递说明
- 本地化处理(IOS)
- iOS-基础动画
- IOS不用AutoLayout也能实现自动布局的类(5)----MyFlowLayout横空出世
- 在ios中使用soundtouch库实现变声
- ios 泛型
- IOS开发--待研究源码(持续添加更新)
- 01环信iOS SDK的集成
- Growth iOS 1.0版 发布——社区功能:更好的学习气氛
- iOS-AutoLayout布局学习
- iOS模拟器模拟器快捷键
- iOS设计模式FWZ
- ios轻量级开发FWZ
- iOS之小功能模块--彩虹动画进度条学习和自主封装改进
- iOS之NSDate
- iOS之数据解析 (JSON 、XML)
- iOS之延时器(NSTimer)