在Xcode4.5以及以后的版本,通过@property就可以声明一个类的成员属性,还可以设置成员属性的其他属性,下面对@property的用法及其参数设置进行详细讲解。
创建Person类
Person.h文件
@interface Person : NSObject
// 返回BOOL类型的方法名一般以is开头
@property (nonatomic, getter = isRich) BOOL rich;
// 生成get、set方法
@property (nonatomic, assign, readwrite) int weight;
// 只生成get方法
@property (nonatomic, assign, readonly) int height;
// 什么参数都不设置,都是默认的,与下面是等价的
@property int age;
//@property (atomic, assign, readwrite) int age;
@property (nonatomic, copy) NSString *name;
@end
Person.m文件
#import "Person.h"
@implementation Person
@end
1.set方法内存管理相关的参数
* retain : release旧值,retain新值(适用于OC对象类型)
* assign : 直接赋值(默认,适用于非OC对象类型,进本属性类型)
* copy : release旧值,copy新值(NSString、block数据类型)
2.是否要生成set方法
* readwrite : 同时生成setter和getter的声明、实现(默认)
* readonly : 只会生成getter的声明、实现
3.多线程管理
* nonatomic : 性能高 (一般就用这个)
* atomic : 性能低(默认)
4.setter和getter方法的名称(指定setter、getter方法的名称)
* setter : 决定了set方法的名称,一定要有个冒号 :
* getter : 决定了get方法的名称(一般用在BOOL类型)