iOS內存管理之我所見

一.內存管理機制

(一).創建對象發生了些什麼

1.分配內存空間,存儲對象

2.初始化成員變量

3.返回對象指針地址

(二).對象創建完成後發生什麼

1.對象在完成創建的同時,內部會自動創建一個引用計數器,這個計數器,是系統用來判定是否回收對象的唯一依據,當我們的計數器retainCount = 0的時候,系統會毫不猶豫回收當前對象

2.[對象 release]  retainCountn -1

3.[對象 retain]   retainCount + 1, 返回self

4.我們的引用計數retainCount = 0 的時候,對象就被銷燬了

5.想要知道對象是否被銷燬,可以通過在類中重寫dealloc函數,運用NSLog的打印來判斷是否執行了dealloc函數,但是在對象自身被銷燬之前,一定要先調用[super  dealloc ]釋放父類中的相關對象。

6.dealloc函數,當一個對象要被銷燬的時候(即retaincount == 0時),系統會自動調用dealloc函數,通知對象你將要被銷燬。

 

當使用MRC的時候,注意內存泄露,野指針的出現。當出現newallocretain,三種情況,記得匹配使用releaseautorelease


ARC轉化成MRCtarget   -----> buildSetting (All)------>搜索language---->object-C中將YES修改成NO


發佈了37 篇原創文章 · 獲贊 8 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章