@property是一个属性访问申明,括号内支持以下属性:
1> getter = getterName;setter = setterName,设置setter与getter的方法名.
2> readwrite:同时生成get方法和set方法的声明和实现;
3> readonly:只生成get方法的声明是实现;
· readwrite与readonly,都是设置访问级别.
4> assign: set方法的实现是直接赋值,不进行任何retain操作,为了解决原类型与循环引用问题,一般用于基本数据类型;
5> retain:set方法的实现的release旧值,retain新值,用于OC对象类型;
6> copy: set方法的实现是release旧值,copy新值,用于NSString block等类型;
7> nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能.如果不加此属性,则默认两个访问方法都为原子型事物访问.锁被加到所属对象实例级.set方法的实现不加锁(比atpmic性能高).
8> strong: 用于一般对象
9> weak: 用于UI控件, 如UIButton , UILable等