一.內存管理機制
(一).創建對象發生了些什麼
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的時候,注意內存泄露,野指針的出現。當出現new,alloc,retain,三種情況,記得匹配使用release,autorelease。
將ARC轉化成MRC:target -----> buildSetting (All)------>搜索language---->object-C中將YES修改成NO。