[摘要]本文是對ARC 和 MRC 小結的講解,對學習IOS蘋果軟件開發有所幫助,與大家分享。
ARC 和 MRC 內存管理
從 MRC—>ARC 就是將內存管理部分,從開發者的函數中轉移到函數外部的runtime 中.由於 runtime 的開發簡單,邏輯層次高,所以 runtime 的出錯幾率很小,另外由於編譯器的優化,使得運行速度很高.
ARC 的特點:
不能顯示的調用 dealloc,retain,release 等(同樣不能再 ARC 中自定義的 delloc 方法中調用[super dealloc]方法.不能調用@selector(retain), @selector(release)的方法)
不能使用 NSAllocateObject 和 NSDeallocateObject來創建和釋放對象.
不能使用 C 語言結構體中使用對象指針
id 和 void * 之間不能隨意轉換
不能使用NSAutoreleasePool對象
不能使用內存區域.為了自動 retain—release,ARC 在內存管理方面做了一些限定,即不能以 new 為開頭命名編譯器名稱,也就是說不能以 new 開頭命名屬性,除非指定一個不同命的 getter 方法.