首页 > 代码库 > iOS复习笔记6:property详解

iOS复习笔记6:property详解

@property type xxx 可以自动生成一个type _xxx;成员变量;
同时还生成对应的setter和getter方法。
可以通过以下四种类型的参数,控制生成getter和setter方法。
1 set方法内存管理参数
1.1 assign: 默认值,直接赋值,使用于基础数据类型
1.2 retain: release旧值,retain新值,再赋值
1.3 copy  : release旧值,copy新值


2 是否要生成setter方法的参数
2.1 readwrite: 默认值,同时生成setter,getter方法声明和实现
2.2 readonly : 只会生成get方法


3 多线程加锁控制参数
3.1 natomic  : 默认值,多线程中加锁
3.2 nonatomic: 多线程中不加锁,性能高, 推荐使用


4 方法名参数(一般只用于改变布尔类型的getter方法)
4.1 getter:getter方法名
4.2 setter:setter方法名(注意一定要有冒号)


* 四种类型的参数只要不功能冲突,可以同时存在。


例如:
@property(nonatomic, assign, readwrite) int age;
@property(nonatomic, getter = isRich) BOOL rich;
@property(nonatomic, retain) Book* book;


iOS复习笔记6:property详解