“-fobjc-arc”标志在octest上不起作用

时间:2014-12-19 15:13:42

标签: ios objective-c automatic-ref-counting

我很抱歉标题可能有点误导,但我真的不知道如何概括这个问题:

我的项目(ARCTest)是非ARC的,我想在其中添加SVProgressHUD。我已将-fobjc-arc标志添加到SVProgressHUD.m。

当我构建项目时,触发了#if !__has_feature(objc_arc)宏,这意味着-fobjc-arc标志无法正常工作。我去了问题导航器,发现错误发生在ARCTestTests(非ARCTest)。

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

尝试将标记设置为-fno-objc-arc而不是

答案 1 :(得分:0)

您是否确实在文件的编译器标志中设置了-fobjc-arc

https://developer.apple.com/library/ios/releasenotes/ObjectiveC/RN-TransitioningToARC/Introduction/Introduction.html

  

我可以选择退出ARC以获取特定文件吗?

     

     

将项目迁移到ARC时,会将-fobjc-arc编译器标志设置为所有Objective-C源文件的缺省值。您可以使用该类的-fno-objc-arc编译器标志为特定类禁用ARC。在Xcode中,在目标Build Phases选项卡中,打开Compile Sources组以显示源文件列表。双击要为其设置标志的文件,在弹出式面板中输入-fno-objc-arc,然后单击“完成”。

How to set -fobjc-arc in Xcode

您应该检查Build消息中的编译器标志。

Compile SVProgressHUD.m ...in /Users/...

单击位于该行最右端的图标(椭圆中的五条水平线)。然后你可以看到文件的编译信息。

CompileC .../SVProgressHUD.o .../SVProgressHUD.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
  cd ...
  export LANG=...
  export PATH=...
  ... -fobjc-arc ...

如果在编译消息中看不到-fobjc-arc,则无法设置编译器标志。