ARC 和 MRC 記憶體管理 從 MRC—>ARC 就是將記憶體管理部分,從開發者的函數中轉移到函數外部的runtime 中.由於 runtime 的開發簡單,邏輯層次高,所以 runtime 的出錯幾率很小,另外由於編譯器的優化,使得運行速度很高. ARC 的特點: 不能顯示的調用 dealloc, ...
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 方法.