内存管理总结:
一,计数器的基本操作
1,retain:+1
2,releasse:-1
3,retainCount:获得计数器数
二,set方法的内存管理
1,set方法的实现
- (void) setCar:(Car *) car
{
if(car != _car)
{
[_car release];
_car=[car retain];
}
}
2,dealloc 方法的实现
- (void) dealloc
{
[_car release];
[super dealloc];
}
三,@property参数
1,OC对象类型
@property (nonatomic,retain) 类名 *属性名
@property (nonatomic,retain) Car *car;
@property (nonatomic,retain) id car;
2,非OC对象类型(int/float/enum/struct)
@property (nonatomic,assign) 类型名称 属性名
@property (nonatomic,assign) int age;
四,autorelease
1.系统自带的方法中,如果不包括alloc,new,copy,那么这些方法返回的对象都已经autorelease过了,不需要release
[NSString stringWithFormat:@"%d 的小女生",10];
[NSDate date];
2,开发中经常写一些类方法快速创建一个autorelease的对象
*创建时不要直接使用类名,用self
如:Mac中Desktop/class/autorelease
如:一个Person类,一个GoodMan子类
|
|