天天看點

oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理

記憶體管理範圍:任何繼承了NSObject的對象,對基本資料類型無效。

基本資料類型(int,long,float,double,Bool,char)

oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理

建立的對象(alloc,new,copy) 會在堆記憶體中開辟一塊空間,是以需要對對象進行記憶體管理。

對象的基本機構:

oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理
oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理

如果工程沒有關閉ARC功能,無法調用retainCount方法;

dealloc 方法:當對象的引用計數器=0時就會調用dealloc方法;

oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理

retain 方法傳回的調用對象本身,引用計數器加1 [p retain];   野指針:指向僵屍對象(不可用記憶體)的指針; 例如,堆中對象的引用計數器=0了,對象占用的記憶體空間就會被系統自動回收,如果對象指針依舊指向未回收前的記憶體空間時,就是野指針。 oc中,不存在空指針報錯, 空指針調用對象方法 代碼可以執行;  

oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理

  對象死,不能複生:對象release引用計數器等于0後,對象變成僵屍對象,此時再次執行[p retain],會報野指針錯誤。所謂對象死,不可複生。   總結:

oc-arc(Automatic Reference Counting 自動引用機制) 與 記憶體管理

轉載于:https://www.cnblogs.com/My-Cloud/p/4500272.html

繼續閱讀