我很抱歉标题可能有点误导,但我真的不知道如何概括这个问题:
我的项目(ARCTest)是非ARC的,我想在其中添加SVProgressHUD。我已将-fobjc-arc
标志添加到SVProgressHUD.m。
当我构建项目时,触发了#if !__has_feature(objc_arc)
宏,这意味着-fobjc-arc
标志无法正常工作。我去了问题导航器,发现错误发生在ARCTestTests(非ARCTest)。
如何解决此错误?
答案 0 :(得分:0)
尝试将标记设置为-fno-objc-arc
而不是
答案 1 :(得分:0)
您是否确实在文件的编译器标志中设置了-fobjc-arc
?
我可以选择退出ARC以获取特定文件吗?
是
将项目迁移到ARC时,会将-fobjc-arc编译器标志设置为所有Objective-C源文件的缺省值。您可以使用该类的-fno-objc-arc编译器标志为特定类禁用ARC。在Xcode中,在目标Build Phases选项卡中,打开Compile Sources组以显示源文件列表。双击要为其设置标志的文件,在弹出式面板中输入-fno-objc-arc,然后单击“完成”。
您应该检查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
,则无法设置编译器标志。