8.set方法管理内存(@property管理的内存)
@property(retain)Book*book
@eng
相当于
-(void)setBook:(Book*)book
{
if(_book!=book)
{
[_bookrelease];//release旧值,retain新值
_book=[bookretain];
}
}
10.@property(参数)
@property参数分为以下四种:
(1)set方法内存管理的相关参数
retain:release旧值,retain新值(用于OC对象)
assign:直接赋值,(默认,用于非OC对象类型)
copy:release旧值,retain新值(一般用于NSString*)
(2)控制需不需要生成set方法
readwrite:同时生成set方法和get方法的声明和实现(默认)
readonly:只会生成get方法的声明实现
(3)多线程管理
atomic:性能低(默认)
nonatomic:性能高
(4)控制set方法和get方法的名称
setter:设置set方法的名称,方法名一定有个冒号:
getter:设置get方法的名称(一般用在BOOL类型中)
|