本帖最后由 Jack-xie 于 2014-10-8 11:53 编辑
小结:
1.set 方法内存管理相关的参数
* retain : release旧值,retain新值(适用于OC对象类型)
* assign : 直接赋值(默认,使用于非OC对象类型)
* copy : release旧值,copy新值
2.是否要生成set 方法
* readwrite : 同时生成setter 和 getter 的声明,实现(默认)
* readonly : 只会生成getter 的声明,实现
3.多线程管理
* nonatomic : 性能高(一般都用nonatomic这个参数)
* atomic : 性能低(默认)
4.setter 和 getter 方法的名称
* setter : 决定了set方法的名称,一定要有个冒号 : (一般不会去修改名称)
* getter : 决定了get方法的名称(一般用在BOOL类型)
BOOL类型更改getter 名称只是为了方便程序员的方便读取 下面附加 如何将BOOL值 转换为字符串输出
第一步:声明BOOL类型 并声明一个转换的方法
// 重新给BOOL类型的getter 方法命名
@property (getter = isRich) BOOL rich;
// 声明一个转换的方法
+(void)getStatus:(BOOL)isRich;
第二步:实现转化方法
// 实现一个类方法 将BOOL 的值传入 并将值转换成字符串输出
+(void)getStatus:(BOOL)isRich{
switch (isRich) {
case 0:
NSLog(@"贫穷");
break;
default:
NSLog(@"富有");
break;
}
}
第三步:主函数 创建对象 再用类名调用类方法 将对象BOOL值传入
// 创建二个对象
Person *person1 = [[Person alloc] init];
person1.rich = YES;
Person *person2 = [[Person alloc] init];
person2.rich = NO;
// 调用类方法 将对象的BOOL值传入 在类方法的内部进行转换
// 修改BOOL类型的getter 方法 其主要目的是为了方便程序员读取
[Person getStatus:person1.isRich];
|
|