Как отключить ARC для одного файла в проекте?

Я успешно использую ARC в своем проекте. Однако я столкнулся с несколькими файлами (например, в модульных тестах и макетных объектах), где правила ARC сейчас немного более хрупкие. Я помню, что слышал, что был способ отключить ARC на основе каждого файла, хотя я не смог найти эту опцию.

это возможно? Как отключить ARC для каждого файла?

18 ответов


можно отключить ARC для отдельных файлов, добавив -fno-objc-arc флаг компилятора для этих файлов.

вы добавляете флаги компилятора в целевые объекты - > фазы сборки - > источники компиляции. Вы должны дважды щелкнуть по правой колонке строки под Флаги Компилятора. Вы также можете добавить его в несколько файлов, удерживая кнопку cmd для выбора файлов, а затем нажав enter, чтобы открыть окно редактирования флага. (Обратите внимание, что редактирование нескольких файлов перезапишет любые флаги что, возможно, уже произошло.)

Я создал пример проекта, который имеет пример:https://github.com/jaminguy/NoArc

xcode

посмотреть этот ответ для получения дополнительной информации: отключить автоматический подсчет ссылок для некоторых файлов


отключить ARC on несколько файлов:

  1. выберите нужные файлы на целевых этапах/сборки / компиляции источников в Xcode
  2. НАЖМИТЕ ENTER
  3. тип -fno-objc-arc
  4. пресс Enter или сделал

;)

enter image description here


для Xcode 4.3 более простой способ может быть: редактировать/рефакторинг / конвертировать в objective-C ARC, затем отметьте файлы, которые вы не хотите преобразовывать. Я нахожу этот способ таким же, как использование флага компилятора выше.


это очень простой способ сделать отдельный файл не-arc.

выполните следующие действия :

отключить ARC в отдельном файле:

  1. выберите нужные файлы на целевых этапах/сборки / компиляции источников в Xcode

  2. выбрать .M файл, который вы хотите сделать его не-ARC НАЖАТЬ КНОПКУ ВВОД Тип - fno-objc-arc

Non Arc file to ARC project флаг:-fno-objc-arc

файл дуги в non ARC флаг проекта : -fobjc-arc


Примечание: Если вы хотите отключить ARC для многих файлов вы должны:

  1. открыть "этапы сборки" - > "компиляция источников"
  2. выберите файлы с помощью "left_mouse" + "cmd" (для отдельных файлов) или +"shift" (для сгруппированных файлов - выберите первый и последний)
  3. нажмите "enter"
  4. вставить -fno-objc-arc
  5. нажмите "enter" еще раз
  6. профит!

просто использовать -fno-objc-arc флаг Build Phases>Compile Sources


  1. выберите проект Xcode
  2. перейти к цели
  3. Выберите раздел фазы сборки
  4. В разделе этапы сборки выберите источники компиляции.
  5. Выберите файл, который вы не хотите отключать ARC, и добавьте-fno-objc-arc

Disable ARC for a particular file


можно отключить ARC (автоматический подсчет ссылок) для конкретного файла в Xcode.

выберите цель - > этапы сборки - > источники компиляции - > Выберите файл (двойной щелчок) - > добавить"-fno-objc-arc " во всплывающее окно.

Я сталкивался с такой ситуацией при использовании "Reachibility" файлов.

Это показано на рисунке ниже :

enter image description here


используйте -fno-objc-arc для каждого файла в фазах сборки


четыре обязательных шага, как описано в этой видео

    //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. Просто выберите их на панели проекта и примените на панели инспектора. Это важно, если вы планируете использовать Cloud Build.enter image description here


добавить флаг "- fno-objc-arc".

простые следующие шаги : App>цели>этапы сборки>источники компиляции> добавить флаг после класса"-fno-objc-arc"


Я думаю, что все остальные ответы объясняют, как отключить MRC(Ручной счетчик ссылок) и включить ARC(автоматический счетчик ссылок). Чтобы использовать MRC (Ручной счетчик ссылок), т. е. отключить ARC(автоматический счетчик ссылок) на нескольких файлах:

  1. выберите нужные файлы на целевых этапах/сборки / компиляции источников в Xcode
  2. НАЖМИТЕ ENTER
  3. тип-fobjc-arc
  4. нажмите Enter или готово

просто используйте флаг-fno-objc-arc на этапах сборки>компилируйте источники перед файлами, к которым вы не хотите применять ARC.


  1. выберите проект - > цели - > этапы сборки - > источники компилятора
  2. выберите файл -> флаги компилятора
  3. добавить-fno-objc-arc

перейдите в приложение - > затем цели - > этапы сборки - > компиляция Source

Теперь выберите файл, в котором вы хотите отключить ARC

вставьте этот фрагмент "- fno-objc-arc " после вставки нажмите ENTER

в каждом файле, где вы хотите отключить ARC.


следующий шаг, чтобы включить отключить ARC

выберите проект Xcode Перейти к целям Выберите раздел этапы сборки В разделе этапы сборки выберите источники компиляции. Выберите файл, который вы не хотите отключать ARC, и добавьте-fno-objc-arc