【问题标题】:-fno-objc-arc doesn't work at runtime-fno-objc-arc 在运行时不起作用
【发布时间】:2012-12-10 21:37:29
【问题描述】:

我下载了一些不使用 ARC 的开源库。我按照 SO 上的建议添加了-fno-objc-arc,这使得它们可以编译。但是,在运行时我仍然会遇到错误(导致崩溃),例如 ARC forbids explicit use of autorelase 。我是不是做错了什么?

【问题讨论】:

  • 你在哪里添加了标志?也许您缺少一些文件。
  • 不,我不这么认为
  • 我在其中一个库中遇到了同样的问题。我通过在每个 .m 文件上添加 -fno-objc-arc 来解决它,它工作正常。 Try it Project -> Build Phases -> Compile Sources -> Compiler Flags 写在那里。
  • 但我不想将它添加到所有文件中。你认为这是个好主意吗?
  • 您应该将它添加到库的每个实现文件中。将标志添加到项目的每个文件中只会导致到处都是内存泄漏,因为您没有管理内存。

标签: iphone objective-c xcode automatic-ref-counting


【解决方案1】:

点击左侧导航视图中的项目名称,前往 目标 -> 构建阶段和 将 -fno-objc-arc 添加到任何相关文件的“编译器标志”中。只需删除对 -release 的所有调用。您不能在 ARC 下调用 -release,因为编译器会为您插入所有必要的保留/释放调用。请再次检查您的文件并清理您的项目....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多