2011-11-23 21 views
12

我知道我應該將編譯器標記-fno-objc-arc添加到XCode 4中的編譯源來完成此操作。但它不起作用。即使添加了標誌,我仍然在我的KeychainItemWrapper.m文件中發現錯誤,聲稱我需要爲C指針使用__bridge如何才能關閉特定文件的ARC

I have added the required flag to the compiled sources... what am I missing?

我的項目是ARC安全的,但蘋果與鑰匙扣交互提供了參考不是。我想只是禁用該單個文件的ARC。我還有什麼在這裏錯過?

+0

是KeychainItemWrapper.m和KeychainItem.m兩個單獨的文件?如果是的話,你是否禁用了KeychainItem.m的ARC? –

+0

這是一個錯字,很抱歉。 – Justin

+0

您是否在編譯該特定文件時查看了構建輸出以查看其是否實際上包含這些編譯器標誌? – mharper

回答

6

在4.2版本中,我在不同的項目中曾多次發生過這種情況,但之後我無法可靠地將它重現爲缺陷報告。但我可以說,在我的情況下,一個乾淨的構建清除了它。

+0

經過多次衝擊後,這是我最終達成的解決方案。謝謝 :) – Justin

1

單擊編輯菜單,轉到重構>轉換爲Objective-C ARC ...單擊項目名稱旁邊的顯示三角形,然後選中要使用ARC的所有文件。

1

可以通過爲這些文件添加-fno-objc-arc編譯器標誌來禁用單個文件的ARC。

您在目標 - >構建階段 - >編譯源中添加編譯器標誌。您必須雙擊Compiler Flags下的右列。您也可以通過按住cmd按鈕選擇文件,然後按Enter鍵調出標誌編輯框將其添加到多個文件。

我創建了一個有一個例子的樣本項目:https://github.com/jaminguy/NoArc

看到這個答案的詳細信息:禁用自動引用計數爲某些文件