在編譯單位上,能夠設置ARC有效或者無效。好比對每一個文件能夠選擇使用或者不使用ARC,一個應用程序中能夠混合ARC有效或者無效的二進制形式。編程
設置ARC有效的編譯方法以下所示:(Xcode4.2開始默認設定對全部文件ARC有效)ui
*使用clang(LLVM編譯器)3.0或以上版本spa
*指定編譯器屬性爲"-fobjc-arc"code
設置ARC有效或者無效,通常兩種方式:對全部文件統一操做、對部分文件操做。內存
1.對全部文件統一操做get
需求:有的編程人員爲了能更好的理解內存管理機制,刻意將編譯器指定爲ARC無效。編譯器
操做:targets --> Build Settings --> Apple LLVM 7.1-Language-Objective C --> Objective-C Automatic Reference Counting --> 將其設置爲NO。內存管理
2.對部分文件操做編譯
需求:Xcode中常常須要導入一些第三方的代碼文件,若是項目的編譯器指定爲ARC機制,可是導入的文件是非ARC機制的,處理這種狀況時,只要告訴編譯器將這個外來的文件按非ARC規則進行編譯,其餘的文件照常按ARC規則編譯。二進制
操做:targets --> Build Phases --> 展開Compile Sources --> 找到非ARC機制的文件,在其後的Compiler Flags一欄雙擊後,並輸入-fno-objc-arc。
需求:Xcode中常常須要導入一些第三方的代碼文件,若是項目的編譯器指定爲非ARC機制,可是導入的文件是ARC機制的,處理這種狀況時,只要告訴編譯器將這個外來的文件按ARC規則進行編譯,其餘的文件照常按非ARC規則編譯。
操做:targets --> Build Phases --> 展開Compile Sources --> 找到非ARC機制的文件,在其後的Compiler Flags一欄雙擊後,並輸入-fobjc-arc。