@property参数
2019-02-25 本文已影响0人
越天高
- 1.相同类型的property修饰符不能同时使用
2.不同类型的property修饰符可以多个结合在一起使用, 多个之间用,号隔开
3.iOS开发中只要写上property, 那么就立刻写上nonatomic
1.控制set方法的内存管理
- retain : release旧值,retain新值(用于OC对象)会在set方法中做内存管理的代码
{
// 只有房间不同才需用release和retain
if (_room != room) {// 0ffe1 != 0ffe1
// 将以前的房间释放掉 -1
[_room release];
/*
// 对房间的引用计数器+1
[room retain];
_room = room;
*/
// retain不仅仅会对引用计数器+1, 而且还会返回当前对象
_room = [room retain];
}
}
assign : 直接赋值,不做任何内存管理(默认,用于非OC对象类型)
不会帮我们生成set方法内存管理的代码, 仅仅只会生成普通的getter/setter方法, 默认什么都不写就是assign
copy : release旧值,copy新值(一般用于NSString *)
2.控制需不需要生成set方法
- readwrite :同时生成set方法和get方法(默认)
readonly :只会生成get方法
3.多线程管理
- atomic :性能低(默认)
nonatomic :性能高
4.控制set方法和get方法的名称
- setter : 设置set方法的名称,一定有个冒号:
getter : 设置get方法的名称
注意: 不同类型的参数可以组合在一起使用