05-@property参数

 

1、跟内存管理相关的参数

(1)retain   :   release 旧值,retain新值(适用于OC对象类型)。

(2)assign : 直接赋值(默认,适用于非OC对象类型)。

(3)copy     :  release旧值,copy新值(一般用于NSString)。

2、是否要生成set方法

(1)readwrite : 告诉编译器, 在自动生成属性方法时, 同时生成setter和getter的声明和实现。(默认)

 

(2)readonly  : 告诉编译器, 在自动生成属性方法时, 只会生成getter的声明和实现。

 

3、多线程管理

(1)atomic       :  原子特性, 保证线程安全, 内部做了安全处理(加锁与解锁), 性能低。(默认)

(2)nonatomic :  非原子特性, 不保证线程安全, 因为对于setter和getter的使用比较频繁, 在一段时间内可能要多次访问, 所以使用atomic会非常消耗系统资源, 降低程序执行效率, 使用nonatomic虽然不保证线程安全, 但是一般情况下使用都是安全的, 所以对于原子特性, nonatomic性能高, 推荐使用nonatomic。(推荐使用)

4、setter和getter方法的名称

(1)setter : 决定了set方法的名称,一定要有个冒号:

(2)getter:决定了get方法的名称

@property (getter xxx)int weight;

@property (setter xxx:)int weight;

原来的get方法名为weight;新的get方法名就是括号中的xxx。

原来的set方法名为setWeight:;新的get方法名就是括号中的xxx:。(冒号不能丢)

(3)返回BOOL类型的方法名一般以is开头

例如:@property (getter = isRich)BOOL rich;

 

posted @ 2014-10-06 16:44  微雨独行  阅读(145)  评论(0编辑  收藏  举报
1 2