@property括号中的属性声明

@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等

你可能感兴趣的:(@property括号中的属性声明)