設定部分檔案不適用ARC機制

2021-06-22 12:19:02 字數 1096 閱讀 9655

般都是開啟arc功能,畢竟不需要自己手動去釋放,是一件比較輕鬆的事情。 

但是我們在引用第三方的時候,基本上都是帶release與retain的方法,這個時候**編譯就通不過 

可以設定部分檔案不使用arc,這樣就可以相容了。 

步驟: 

加入第三方庫時候選擇 

1. 單擊專案,在builde phases 中,compile sources   

2.選中檔案,雙擊檔案,在彈出框中輸入-fno-objc-arc, 

3.編譯就可以通過了。 

注: 雖然使用arc的好處多多,但在選擇之前也需要考慮清楚,目前arc只支援ios5.0以上系統,在4.0上還不能支援weak reference,而對於解決strong reference cycle問題來說,弱引用是必須的。另外一些第三方庫還並不能完美支援arc,當然這也可以通過為特定檔案指定-fno-obj-arc的方法來解決。 

arc的使用很簡單,去掉所有的retain/release/dealloc/autorelease方法,把原來property宣告裡的retain改為strong,assign改為weak,再把nsautoreleasepool替換為@autoreleasepool即可滿足絕大多數情況。 

另外還有一些需要注意的,包括屬性名不能以new打頭,不能顯式呼叫dealloc但是可以實現自定義的dealloc方法,但是不要在方法中銷毀內部變數,只需要翻譯資源,同時也不需要呼叫[super dealloc],arc為幫助完成這些操作。 

還有一些__strong、__weak、__unsafe_unretained、__autorelease識別符號在絕大多數情況下都不會使用到,預設的__strong識別符號即可以,而且也不需要顯式的指明。 

需要注意的是,臨時變數使用__weak標籤的時候一定要小心,如果方法返回的是autorelease型別,將其賦值給__weak變數的時候,因為此時已經沒有了強引用,該變數已不再存在,所以__weak變數獲取到的值會是nil。 

關於在c結構體中使用物件指標的問題,官方建議使用class代替,當然也可以將該檔案指定為不使用arc。 

最後,toll free bridging只有在使用core foundtion庫的時候才會遇到,一般情況下不用太在意。

Git轉殖部分檔案

mkdir druid cd druid git init 初始化空倉庫 git remote add f origin 關聯遠端位址 git config core.sparsecheckout true 開啟sparse checkout模式 echo druid doc git info sp...

Git轉殖部分檔案

轉殖部分檔案 轉殖部分檔案 總結一下 乙個完整的例子 在進行專案開發的時候,有時候會有這樣的需求那就是 我們只希望從git倉庫裡取指定的檔案或者資料夾出來。在svn裡面,這非常容易實現,因為svn基於檔案方式儲存,而git卻是基於元資料方式分布式儲存檔案資訊的,它會在每一次clone的時候將所有資訊...

SVN 檢出部分檔案

svn checkout url depth empty files immediates infinity depth的引數 empty 只包含目標檔案或目錄,不包含子目錄 files 只包含目標檔案和子檔案 immediates 只包含目標檔案及相鄰的檔案,目錄 infinity 所有檔案,目錄...