@property(retain) ==@property(atomic, retain)
2、先对参数retain,再对变量release,在对变量赋值。
copy setter方法进行Copy操作,与retain一样
nonatomic 禁止多线程,变量保护,提高性能
//在setter函数中对参数retain了之后再将参数赋值给变量,所以在dealloc函数中需对变量release。
//default为原子操作(在执行set/get时加锁,确保多线程安全,但时执行时间较长。
则默认是两个访问方法都为原子型事务访问。)
@property(nonatomic, retain)
//设置为非原子操作,适合单线程的程序
@property int num;
//默认为原子操作,一般简单数据类型不需要retain
==============================
其中参数主要分为三类:
读写属性: (readwrite/readonly) setter语意:(assign/retain/copy) 原子性: (atomicity/nonatomic)
各参数意义如下: readwrite 产生setter\getter方法
readonly 只产生简单的getter,没有setter。
assign 默认类型,setter方法直接赋值,而不进行retain操作
retain setter方法,1、如果变量!==参数,对变量进行release旧值,再retain新值。