ARC基本概念

1.什麼是ARC

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

  • 手動管理內存, 能夠簡稱MRC (Manual Reference Counting)
  • 在工程中使用ARC很是簡單:只須要像往常那樣編寫代碼,只不過永遠不寫retain,release和autorelease三個關鍵字就好~這是ARC的基本原則。優化

  • 當ARC開啓時,編譯器將自動在代碼合適的地方插入retain, release和autorelease,而做爲程序猿,徹底不須要擔憂編譯器會作錯(除非開發者本身錯用ARC了)。spa

2.ARC的注意點和優勢

  • ARC的注意點指針

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

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

3.ARC的判斷原則

  • ARC的判斷原則對象

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

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

  被__weak修飾的指針內存

__weak  Person *p = [[Person alloc] init];
  • 注意:當使用ARC的時候,暫時忘記「引用計數器」,由於判斷標準變了。
相關文章
相關標籤/搜索