2012-07-19 33 views
3

我使用xcode 4.3.1將非ARC項目轉換爲弧。我想知道什麼Apple LLVM編譯器3.1 - 警告Objective-C++自動引用計數

構建設置目的C++自動引用在

Apple LLVM compiler 3.1 - Warnings

部分意味着計數

。可以推測它會打開或關閉ARC的某種警告,但我不完全確定它的含義。

+0

你確定它說Objective - ** C++ **? – trojanfoe 2012-07-19 12:38:46

+0

好點,我甚至沒有注意到!但我確定它說Objective-C++。 – Darren 2012-07-19 12:44:33

+0

最好不要將nonARC項目轉換爲ARC,而應在構建階段爲非ARC的文件添加「-fno-objc-arc」。 – Ranjit 2012-07-19 12:44:39

回答

3

如果選擇了警告,在Xcode 4打開最右邊的選項卡,然後在頂部選擇第二個圖標(波浪線),你會看到Apple幫助該項目,它說:

目的-C++自動引用計數ABI不兼容性

CLANG_WARN_OBJCPP_ARC_ABI

在編譯使用自動引用計數,報告的代碼與傳統的手工引用計數代碼鏈接ARC代碼時,可能會導致ABI問題目標-C++代碼。

此外,我不相信使用「fno-objc-arc」標誌來避免不必處理ARC。這樣做的人認爲他們有完美的無泄露代碼,堅持ARC命名啓發式的各個方面。我希望我可以對自己的保留/釋放/自動釋放代碼有信心!而且,ARC代碼通常更小更快。

+0

謝謝,這節省了我一些時間。 – GoldenJoe 2013-09-04 16:21:29