Objective-C基礎學習之ARC基本概念

1.什么是ARC

  • Automatic Reference Counting,自動引用計數,即ARC,可以說是WWDC2011和iOS5所引入 的最大的變革和最激動人心的變化。ARC是新的LLVM 3.0編譯器的一項特性,使用ARC,可以說一 舉解決了廣大iOS開發者所憎恨的手動內存管理的麻煩。

    • 手動管理內存, 可以簡稱MRC (Manual Reference Counting)

  • 在工程中使用ARC非常簡單:只需要像往常那樣編寫代碼,只不過永遠不寫retain,release和autorelease三個關鍵字就好~這是ARC的基本原則。

  • 當ARC開啟時,編譯器將自動在代碼合適的地方插入retain, release和autorelease,而作為程序猿,完全不需要擔心編譯器會做錯(除非開發者自己錯用ARC了)。

2.ARC的注意點和優點

  • ARC的注意點

    • ARC是編譯器特性,而不是運行時特性
    • ARC不是其它語言中的垃圾回收, 有著本質區別
  • ARC的優點

    • 完全消除了手動管理內存的煩瑣, 讓程序猿更加專注于app的業務
    • 基本上能夠避免內存泄露
    • 有時還能更加快速,因為編譯器還可以執行某些優化

3.ARC的判斷原則

  • ARC的判斷原則

    • 只要還有一個強指針變量指向對象,對象就會保持在內存中
  • 強指針

    • 默認所有指針變量都是強指針
    • 被__strong修飾的指針
Person *p1 = [[Person alloc] init];
 __strong  Person *p2 = [[Person alloc] init];
  • 弱指針

    • 被__weak修飾的指針
__weak  Person *p = [[Person alloc] init];
  • 注意:當使用ARC的時候,暫時忘記“引用計數器”,因為判斷標準變了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.1 什么是自動引用計數 概念:在 LLVM 編譯器中設置 ARC(Automaitc Reference Co...
    __silhouette閱讀 5,254評論 1 17
  • 內存管理是程序在運行時分配內存、使用內存,并在程序完成時釋放內存的過程。在Objective-C中,也被看作是在眾...
    蹲瓜閱讀 3,180評論 1 8
  • 內存管理 簡述OC中內存管理機制。與retain配對使用的方法是dealloc還是release,為什么?需要與a...
    丶逐漸閱讀 2,008評論 1 16
  • 什么是Automatic Reference Counting? Automatic Reference Coun...
    癲癲的戀了閱讀 3,156評論 3 23
  • 眾所周知全國各地打麻將的方法不一,其中最以四川的麻將復雜和有意思。 首先他們只允許最多有兩種花色,...
    控衛閱讀 3,108評論 0 0