【问题标题】:Converting individual files to arc?将单个文件转换为弧?
【发布时间】:2012-05-15 05:04:42
【问题描述】:

我已经看到很多关于将整个项目转换为 arc,然后使用标志告诉 Xcode 哪些不转换的信息。

仅将单个文件转换为 arc 怎么样?我试过了,它运行良好。我可以这样做吗?我有点担心,因为如果我在这里和那里转换东西,整个项目都不会转换为 arc,它们会导致内存泄漏。

【问题讨论】:

    标签: xcode memory-management memory-leaks automatic-ref-counting xcode4.3


    【解决方案1】:

    是的,你可以。但是,您需要告诉编译器哪些文件不是 ARC。您可以在项目设置中执行此操作。转到your project > Select the target of the app in question > Build Phases。现在下拉“编译源”并选择您不希望使用 ARC 编译的文件,按 ENTER 并会出现一个小弹出框。在这里你可以写-fno-objc-arc。按Done 就完成了。

    编译时,它会尝试为没有-fno-objc-arc 标志的文件添加自动引用计数。在使用 ASIHTTPRequest 或 MBProgressHud(和其他)等非弧库时非常有用。

    【讨论】:

    • 你怎么知道它正在尝试将 ARC 用于其他文件?它似乎记得哪些文件已转换为 ARC,哪些未转换。
    • 如果您使用了多个不能使用 ARC 的库怎么办?有很多文件要更改,您是否必须为所有文件单独设置标志,还是有更好的方法?
    • 这是在您的项目设置中为编译器设置的标志Objective-C Automatic Reference Counting
    • 是的,如果您有多个库,那么您应该在Build Phase 选项卡的Compile Sources 中为这些库选择 .m 文件并将此标志添加到它们。这是因为项目设置设置为使用 ARC,而这些文件没有。所以这些文件应该被编译器从 ARC 中排除。
    • 我已经知道这个标志了。我以前用过。但是,如果您必须为 100 个文件设置此标志怎么办。你必须为每一个单独做,还是你可以一次选择它们并设置标志?
    【解决方案2】:

    只告诉某些文件是ARC使用标志:

    -fobjc-arc
    

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 1970-01-01
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 2021-08-23
      相关资源
      最近更新 更多