【问题标题】:ARC: Setting compiler flags to -fno-objc-arc and build errorsARC:将编译器标志设置为 -fno-objc-arc 并构建错误
【发布时间】:2023-03-17 21:05:01
【问题描述】:

在关于为特定类禁用 ARC 编译器机制的 stackoverflow 主题之后,我将 -fno-objc-arc 参数添加到 Compile Sources 部分下的 Compiler Flags 列(TARGETS 项目中的构建阶段选项卡)。即使设置已经过验证,我也无法构建我的应用程序,因为编译器说 retain, release, etc. 不能在 ARC 下使用。

如何解决上述问题?提前谢谢你。

【问题讨论】:

    标签: ios xcode build compiler-errors automatic-ref-counting


    【解决方案1】:

    您是否使用迁移工具执行迁移?您是否将编译器标志添加到所有具有释放/保留的文件?

    我在这里写了ARC migration on my blog

    【讨论】:

    • @MugunthKumar 对于第一个问题没有。是的,第二个。 +1 为您的指南。谢谢。
    • 虽然这可能在技术上回答问题,it would be preferable 供您在此处总结链接材料。否则,答案可能会因链接失效而失去其用处。
    • 我遇到了类似的问题,发现如果我将#include 'myFile.h' 移动到头文件而不是在实现文件的顶部(我试图包含它的类),错误消失了。我不知道为什么。
    【解决方案2】:

    是的,如果您使用的是 ARC For iphone 应用程序,那就是真的。 您不能手动使用retain, release, etc.。这些消息由编译器自动放置。 您应该正确检查您的代码,以了解您收到错误的类。 我想是的,您仍在使用retain, release, etc. 支持ARC 的类。 所以首先检查你的类,其中发生了错误。

    【讨论】:

    • 可以使用fno-objc-arc 标志逐个文件禁用ARC。
    • 嘿标志实际上是-fno-objc-arc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2012-05-03
    相关资源
    最近更新 更多