@property参数分为3类:
读写属性:readwrite/readonly
setter处理:assign/retain/copy
原子性:atomic/nonatomic
readwrite表示生成getter和setter方法,默认类型;
readonly表示只生成getter方法;
assign表示直接赋值,适合内置数据类型,默认类型;
retain表示在setter方法中,release旧值,retain新值;
copy表示在setter方法中,release旧值,再copy新值;
atomic表示给getter和setter方法加锁,确保多线程安全;
nonatomic表示不给getter和setter方法加锁。
@property还可以用来改写setter或者getter的方法名,例如:
@property (getter = isTaller) BOOL taller;
读写属性:readwrite/readonly
setter处理:assign/retain/copy
原子性:atomic/nonatomic
readwrite表示生成getter和setter方法,默认类型;
readonly表示只生成getter方法;
assign表示直接赋值,适合内置数据类型,默认类型;
retain表示在setter方法中,release旧值,retain新值;
copy表示在setter方法中,release旧值,再copy新值;
atomic表示给getter和setter方法加锁,确保多线程安全;
nonatomic表示不给getter和setter方法加锁。
@property还可以用来改写setter或者getter的方法名,例如:
@property (getter = isTaller) BOOL taller;