@property参数分为4类
(1)与set方法内存管理参数相关
retain:要生成符合内存管理原则的set方法(应用与对象类型)
assign:直接赋值,(对象类型,基本数据类型)
copy:
(2)多线程相关
nonatomic:不生成多线程相关代码,iphone开发绝大多数情况下都使用这种(效率高一点)
atomic:生成多线程相关代码(不写默认是这种方式)
(3)是否要生成set与get方法
readwrite:可读可写属性,同时生成set和get方法
readonly:只读属性,只生成get方法
(4)set与get方法名称相关的参数
setter:设置生成的set方法名称
getter:设置生成的get方法名称
例子:
<span style="font-size:18px;">@property (retain) Car * car;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, assign) int age; // int float double char 基本类型直接使用assign
@property (nonatomic, assign, readonly) int weight;
@property (nonatomic, assign, setter = run:, getter = speed) int fast;</span>