内存管理总结:
1>计数器的操作:
*retain:+1
*release:-1
*retainCount:获得计数器的数字
2>set方法的内存管理:
*set方法的实现:
- (void)setCar:(Car *)car{
if (_car != car){
[_car release];
_car = [car retain];
}
}
*dealloc方法的实现:
- (void)dealloc{
[_car release];
[super dealloc];
}
3>@property参数:
*OC对象类型
@property(nonatomic,retain)类名 *属性名;
// 被retain的属性必须在dealloc方法中release;
- (void)dealloc{
[_car release];
[super dealloc];
}
*非OC对象类型
@property(nonatomic,assign)类型名 属性名;
4>autorelease
*系统自带的方法里面没有alloc,new,copy,说明返回的对象都是autorelease的
*开发中经常会用到一些类方法,快速创建一个已经autorelease的对象
*创建对象时不要直接用类名,一般用self
*/
// 1>系统自带的方法里面没有alloc,new,copy,说明返回的对象都是autorelease的
// 2>开发中经常会用到一些类方法,快速创建一个已经autorelease的对象
// 3>创建对象时不要直接用类名,一般用self