OC內存管理-黃金法則

1.內存管理-黃金法則函數

若是對一個對象使用了alloc、[mutable]copy、retain,那麼必須使用相應的release或autorelease。對象

類型定義: 基本類型:任何c的類型,如:int、short、char、long、struct、enum、union等屬於基本結構類型或結構體。繼承

內存管理對於C語言基本類型無效;內存

任何繼承與NSObject類的對象都屬於OC類型。it

全部OC對象都有一個計數器,保留着當前被引用的數量。內存管理

 

 

2.內存管理對象:io

OC的對象:凡是繼承與NSObject; 每個對象都有一個retainCount計數器。表示當前的被應用的計數。若是計數爲0,那麼就真正的釋放這個對象。table

alloc、retain、release函數: a.alloc函數是建立對象使用,建立完成後計數器爲1;只用1次。語法

                                       b.retain是對一個對象計數器+1;能夠調用屢次引用

                                       c.release是對一個對象計數器-1;減到0 對象就會從內存中釋放。

增長對象計數器的三種方式: a.當明確使用alloc方法來分配對象;

                                      b.當明確使用copy[WithZone]或者mutableCopy[WithZone]來copy對象的時候;

                                      c.當明確使用retain消息。 上述三種方法使得計數器增長,那麼就須要使用[auto]release來明確釋放對象,也就是遞減計數器。

3.retain點語法

OC內存管理正常狀況要使用大量的retain和release操做;

點語言能夠減小使用retain和release的操做。

copy屬性:copy屬性是徹底把對象從新拷貝一份,計數器從新設置爲1,和以前拷貝的數據徹底脫離關係。

相關文章
相關標籤/搜索