oc012---ARC

一、 基本簡介
➢ ARC是自iOS 5之後增加的新特性,完全消除了手動管理內存的煩瑣,編譯器會自動在適當的地方插入適當的retain、release、autorelease語句。你不再需要擔心內存管理,因爲編譯器爲你處理了一切
➢ ARC 是編譯器特性,而不是 iOS 運行時特性,它也不是類似於其它語言中的垃圾收集器。因此 ARC 和手動內存管理性能是一樣的,有時還能更加快速,因爲編譯器還可以執行某些優化
➢ ARC主要提供了4種修飾符,他們分別是:__strong,__weak,__autoreleasing,__unsafe_unretained。

二、 基本原理
1. 規則
ARC 的規則非常簡單:只要還有一個強指針變量指向對象,對象就會保持在內存中

  1. 強指針和弱指針
    ➢ 默認所有實例變量和局部變量都是Strong指針
    ➢ 弱指針指向的對象被回收後,弱指針會自動變爲nil指針,不會引發野指針錯誤

三、 使用注意
➢ 不能調用release、retain、autorelease、retainCount
➢ 可以重寫dealloc,但是不能調用[super dealloc]
➢ @property : 想長期擁有某個對象,應該用strong,其他對象用weak
➢ 其他基本數據類型依然用assign
➢ 兩端互相引用時,一端用strong、一端用weak

其他參考:
http://www.cocoachina.com/ios/20150206/11121.html

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