本篇部落格是對上一章記憶體管理進行一個小結,整合一下記憶體管理的知識,友善記憶和掌握知識的重點。
一、計數器的基本操作
1.retain : 計數器+1
2.release : 計數器-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;
// 被retain過的屬性,必須在dealloc方法中release屬性
- (void)dealloc
{
[_car release];
[super dealloc];
}
2> 非OC對象類型(int,float,enum,struct)
@property (nonatomic, assign) 類型名稱 屬性名
@property (nonatomic, assign) int age;
四、autorelease
1.系統自帶的方法中,如果不包含alloc,new,copy,那麼這些方法傳回的對象都是已經autorelease過的
[NSString stringWithFormat:@""];
2.開發中經常寫一些類方法快速建立一個autorelease的對象
*建立對象的時候不要直接寫類名,用self,便于子類的使用
轉載于:https://www.cnblogs.com/twcblog/p/4453611.html