关于C#:如何为项目中的单个文件禁用ARC?

How can I disable ARC for a single file in a project?

我在我的项目中成功地使用了ARC。但是,我遇到了一些文件(例如,在单元测试和模拟对象中),其中ARC规则现在有点脆弱。我记得我听说有一种方法可以基于每个文件禁用ARC,尽管我找不到这个选项。

这有可能吗?如何基于每个文件禁用ARC?


通过为这些文件添加-fno-objc-arc编译器标志,可以为单个文件禁用arc。

在目标->构建阶段->编译源中添加编译器标志。必须双击编译器标志下行的右列。您还可以通过按住Cmd按钮选择文件,然后按Enter键打开标志编辑框,将其添加到多个文件中。(请注意,编辑多个文件将覆盖它可能已经具有的任何标志。)

我创建了一个示例项目,其中有一个示例:https://github.com/jaminguy/noarc

xcode

有关详细信息,请参阅此答案:禁用某些文件的自动引用计数


对多个文件禁用ARC:

  • 在Xcode的目标/构建阶段/编译源中选择所需的文件
  • 按回车
  • 类型-FNO OBJC ARC
  • 按Enter键或Done键
  • ;)

    enter image description here


    对于Xcode4.3,更简单的方法可能是:编辑/重构/转换为Objective-C Arc,然后检查不希望转换的文件。我发现这和使用上面的编译器标志是一样的。


    这是一个非常简单的方法,使个别文件非弧。

    遵循以下步骤:

    禁用单个文件上的圆弧:

  • 在Xcode的目标/构建阶段/编译源中选择所需的文件

  • 选择要使其非圆弧的.m文件按回车类型-FNO OBJC ARC

  • 非ARC文件到ARC项目标志:-fno-objc-arc

    ARC文件到非ARC项目标志:-fobjc-arc


    注意:如果要对许多文件禁用ARC,则必须:

  • 打开"构建阶段"->"编译源"
  • 用"鼠标左键"+"Cmd"(分开的文件)或+"shift"选择文件(对于分组文件-选择第一个和最后一个)
  • 按"进入"
  • 粘贴-fno-objc-arc
  • 再次按"回车"
  • 利润!

  • 只需在Build Phases>Compile Sources中使用-fno-objc-arc标志即可。


  • 选择Xcode项目
  • 进入目标
  • 选择构建阶段部分
  • 在构建阶段部分选择编译源。
  • 选择不想禁用ARC的文件并添加-fno objc arc
  • Disable ARC for a particular file


    可以在Xcode中禁用特定文件的ARC(自动参考计数)。

    选择目标->构建阶段->编译源->选择文件(双击)->添加"-fno objc arc"弹出窗口。

    我在使用"可访问性"文件时遇到过这种情况。

    如下图所示:

    enter image description here


    在构建阶段为每个文件使用-fno objc arc


    本视频中解释的四个强制步骤

    1
    2
    3
    4
        //1. Select desired files
        //2. Target/Build Phases/Compile Sources
        //3. Type -fno-objc-arc
        //4. Done

    请按照屏幕截图输入-fno objc arc。

    enter image description here


    如果您使用的是Unity,那么不需要在Xcode中更改它,您可以在元数据中为特定的文件应用一个编译标志,就在Unity内部。只需在项目面板中选择它们,然后从Inspector面板中应用。如果您计划使用cloud build.enter image description here,这是非常重要的。


    我认为所有其他答案都解释了如何禁用MRC(手动参考计数)和启用ARC(自动参考计数)。要在多个文件上使用MRC(手动参考计数),即禁用ARC(自动参考计数):

  • 在Xcode的目标/构建阶段/编译源中选择所需的文件
  • 按回车
  • 类型-FOBC弧
  • 按Enter键或Done键

  • 添加标志"-fno objc arc"。

    简单的操作步骤:应用程序>目标>构建阶段>编译源>类后添加标志"-fno objc arc"


    只需在build-phases>compile-sources中使用-fno objc arc标志,在不希望应用arc的文件前面。


  • 选择项目->目标->构建阶段->编译器源
  • 选择文件->编译器标志
  • 添加-FNO OBJC ARC

  • 转到app->then targets->build phases->compile source

    现在,选择要在其中禁用ARC的文件

    粘贴此代码段"-fno objc arc"粘贴后按Enter键

    在要禁用ARC的每个文件中。


    执行以下步骤以启用禁用ARC

    选择Xcode项目进入目标选择构建阶段部分在构建阶段部分选择编译源。选择不想禁用ARC的文件并添加-fno objc arc