【语法】@property的参数
@property的参数:
一、控制set方法的内存管理:
1.retain : release旧值,retain新值
2.assign :直接赋值,不做任何内存管理(默认)
3.copy
二、控制有没有set方法和get方法
1.readwrite :同时生成set方法和get方法(默认,少用)
2.readonly : 只会生成get方法
三、多线程管理
1.atomic : 性能低(默认)
2.nonatomic : 性能高
四、控制set方法和get方法的名称
1.setter : 设置set方法的名称,一定有个冒号:
2.getter : 设置get方法的名称
读写属性: (readwrite/readonly)
setter语意:(assign/retain/copy)
原子性: (atomicity/nonatomic)
readwrite
产生setter\getter方法
readonly 只产生简单的getter,没有setter。
assign
默认类型,setter方法直接赋值,而不进行retain操作
retain
setter方法对参数进行release旧值,再retain新值。
copy
setter方法进行Copy操作,与retain一样
nonatomic
禁止多线程,变量保护,提高性能。
assign 通常用于基本类型,如int,bool,char等。
copy
通常用于NSString,NSNumber,NSArray等不变的类型。