【问题标题】:converted my app to ARC but only 1 target shows ARC setting as YES?将我的应用程序转换为 ARC 但只有 1 个目标将 ARC 设置显示为“是”?
【发布时间】:2012-08-22 02:29:42
【问题描述】:

我相信我使用“重构 -> 转换为 Objective-C ARC”工具成功地将应用程序转换为 ARC,但我的项目目标中只有一个具有以下设置:

如果我使用 IB 创建任何东西,它仍然会生成保留/释放/释放代码?

此外,由于内存使用,我现在出现了以前没有的崩溃,所以我想知道我的项目是否处于导致我随机内存问题的半转换状态。

如何让这些其他目标使用 ARC - 或确保它们正在使用 ARC?

【问题讨论】:

  • 将这些目标的标志设置为YES,看看它是否会引起编译器的大量尖叫。如果没有,你就完成了:)
  • 我没有地方可以将标志设置为“是”,该选项不会显示在这些目标的构建设置下
  • 当您查看“Compiler for C/C++/Objective-C”的构建选项时,它应该说“默认编译器(Apple LLVM 编译器...)”如果它设置为“LLVM GCC 4.2" 那么"自动引用计数"将不是一个选项。

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


【解决方案1】:

手动将标志更改为“是”。还想检查并确保所有文件都没有设置编译器标志“-fno-objc-arc”。 (我遇到过以这种方式转换一半的项目。)

如果您仍然遇到内存问题,请运行 Leaks Instrument。即使使用 ARC,您仍然可能会出现内存泄漏,例如 retain cycles,其中父子关系相互保留。在这种情况下,您需要使用弱指针。

【讨论】:

  • 新手移动 - 由于某种原因,我切换了其他目标的“全部”,而不仅仅是“基本”设置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
相关资源
最近更新 更多