天天看點

OC記憶體管理的小結

  本篇部落格是對上一章記憶體管理進行一個小結,整合一下記憶體管理的知識,友善記憶和掌握知識的重點。

一、計數器的基本操作

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

繼續閱讀