天天看點

記憶體管理之引用計數

IOS中手動管理記憶體方式是通過引用計數來實作記憶體的管理當對象調用allco方法,引用計數置為一,以後每一次retain,引用計數加一,

對應的,release方法,會将對象的引用計數減一,當對象的引用計數為0時,系統将回收對象的記憶體。

其中值得注意的是調用add方法時也會retain,是以經常可以看到以下代碼:

UIView *view = [[UIView alloc]init];
        [self addSubview:view];
        [view release];
        [view removeFromSuperview];
           

這裡最後一行執行release,系統并不會将view回收,應為除alloc是引用計數置為一,addsubview時view的引用計數又加了一,此時view的引用計數為二

當releaes執行後,view的引用計數減一,為一,執行removeFromSuperview之後,計數減一,這個時候view計數為零,系統調用delloc方法回收記憶體。

歸根結底要記住一條黃金法則:誰建立誰釋放,誰retain誰釋放