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

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

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

1276
задан casademora 11 июля '11 в 8:21
источник поделиться

18 ответов

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

Вы добавляете флаги компилятора в "Цели" → "Сформировать фазы" → "Скомпилировать источники". Вам нужно дважды щелкнуть по правой колонке строки под флагом компилятора. Вы также можете добавить его в несколько файлов, удерживая кнопку cmd, чтобы выбрать файлы, а затем нажмите Enter, чтобы открыть окно редактирования флага. (Обратите внимание, что при редактировании нескольких файлов будут перезаписаны все флаги, которые могут быть уже установлены.)

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

xcode

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

2120
ответ дан jaminguy 12 июля '11 в 4:22
источник поделиться

Отключить ARC в МНОГОФУНКЦИОНАЛЬНЫХ файлах:

  • Выберите желаемые файлы на этапах Target/Build/Compile Sources в Xcode
  • НАЖМИТЕ ВВОД
  • Тип -fno-objc-arc
  • Нажмите Ввести или Готово

;)

enter image description here

450
ответ дан Tibidabo 01 апр. '12 в 3:30
источник поделиться

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

42
ответ дан Jingjie Zhan 19 июля '12 в 1:28
источник поделиться

Это очень простой способ сделать отдельный файл не дугой.

Следуйте инструкциям ниже:

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

  • Выберите нужные файлы в разделе "Целевые/Сформировать фазы" / "Скомпилировать источники в Xcode"

  • Выберите файл .m, который вы хотите сделать НЕ-ARC НАЖМИТЕ ВВОД Тип -fno-objc-arc

Файл без ARC для флага проекта ARC: -fno-objc-arc

Файл ARC для флага проекта не ARC: -fobjc-arc

33
ответ дан Dipak Narigara 05 июля '13 в 8:55
источник поделиться

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

  • открыть "Фазы сборки" → "Скомпилировать источники"
  • выберите файлы с "left_mouse" + "cmd" (для разделенных файлов) или + "shift" (для сгруппированных файлов - выберите первый и последний)
  • нажмите "enter"
  • Вставить -fno-objc-arc
  • снова нажмите "enter"
  • прибыль!
33
ответ дан digipeople 07 марта '13 в 15:53
источник поделиться

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

20
ответ дан Rahul Gupta 28 нояб. '12 в 12:56
источник поделиться
  • Выберите проект Xcode
  • Перейти к целям
  • Выберите раздел "Фазы сборки"
  • В разделе фазы сборки выберите источники компиляции.
  • Выберите файл, который вы не хотите отключать ARC и добавьте -fno-objc-arc

Disable ARC for a particular file

11
ответ дан user2538944 20 янв. '14 в 12:03
источник поделиться

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

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

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

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

enter image description here

10
ответ дан Jayprakash Dubey 20 марта '14 в 17:24
источник поделиться

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

    //1. Select desired files
    //2. Target/Build Phases/Compile Sources
    //3. Type -fno-objc-arc
    //4. Done
9
ответ дан user2554822 21 окт. '13 в 22:16
источник поделиться

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

9
ответ дан Manish Jain 25 сент. '13 в 13:24
источник поделиться

Пожалуйста, просто выполните скриншот и введите -fno-objc-arc.

введите описание изображения здесь

5
ответ дан Tunvir Rahman Tusher 02 сент. '16 в 18:08
источник поделиться

Если вы используете Unity, вам не нужно изменять это в Xcode, вы можете применить флаг компиляции в метаданных для определенных файлов (файлов), прямо внутри Unity. Просто выберите их на панели "Проект" и примените с панели "Инспектор". Это важно, если вы планируете использовать Cloud Build. введите описание изображения здесь

4
ответ дан greenland 19 окт. '15 в 0:37
источник поделиться

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

Простые шаги: Приложение > Цели > Сборка фаз > Скомпилировать источники > добавить флаг после класса "-fno-objc-arc"

3
ответ дан Manoj Chandel 10 окт. '13 в 17:25
источник поделиться

Я думаю, что все остальные ответы объясняют, как отключить MRC (Manual Reference Count) и включить ARC (Automatic Reference Count). Использование MRC (количество ссылок вручную), то есть отключение ARC (автоматического подсчета ссылок) для файлов MULTIPLE:

  • Выберите желаемые файлы на этапах Target/Build/Compile Sources в Xcode
  • НАЖМИТЕ ВВЕРХ
  • Тип -fobjc-arc
  • Нажмите "Enter" или "Готово"
3
ответ дан Vin 30 дек. '16 в 13:46
источник поделиться

Чтобы отключить ARC для отдельных файлов, перейдите к фазе сборки в настройках проекта, затем щелкните по источникам компиляции.

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

Источник: Отключить ARC для индивидуального класса

2
ответ дан Abel Duarte 02 дек. '15 в 1:06
источник поделиться

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

1
ответ дан C_compnay 18 сент. '14 в 14:19
источник поделиться

Следующий шаг для включения отключения ARC

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

-1
ответ дан annu 09 марта '15 в 10:25
источник поделиться

GO to App → then Targets → Build Phases → Compile Source

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

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

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

-1
ответ дан adijazz91 24 февр. '15 в 13:03
источник поделиться

Другие вопросы по меткам