Как отключить ARC для одного файла в проекте?
Я использую ARC в моем проекте. Однако я столкнулся с несколькими файлами (например, в модульных тестах и макетных объектах), где сейчас правила ARC немного более хрупкие. Я помню, что слышал, что есть способ отключить ARC для каждого файла, хотя мне не удалось найти этот вариант.
Возможно ли это? Как отключить ARC для каждого файла?
Ответы
Ответ 1
Можно отключить ARC для отдельных файлов, добавив флаг -fno-objc-arc
для этих файлов.
Вы добавляете флаги компилятора в "Цели" → "Сформировать фазы" → "Скомпилировать источники". Вам нужно дважды щелкнуть по правой колонке строки под флагом компилятора. Вы также можете добавить его в несколько файлов, удерживая кнопку cmd, чтобы выбрать файлы, а затем нажмите Enter, чтобы открыть окно редактирования флага. (Обратите внимание, что при редактировании нескольких файлов будут перезаписаны все флаги, которые могут быть уже установлены.)
Я создал пример проекта, который имеет пример: https://github.com/jaminguy/NoArc
![xcode]()
См. этот ответ для получения дополнительной информации:
Отключить автоматический подсчет ссылок для некоторых файлов
Ответ 2
Отключить ARC в МНОГОФУНКЦИОНАЛЬНЫХ файлах:
- Выберите желаемые файлы на этапах Target/Build/Compile Sources в Xcode
- НАЖМИТЕ ВВОД
- Тип -fno-objc-arc
- Нажмите Ввести или Готово
;)
![enter image description here]()
Ответ 3
Для Xcode 4.3 может быть проще: Edit/Refactor/Convert to objective-C ARC, затем проверьте файлы, которые вы не хотите преобразовывать. Я нахожу этот путь таким же, как с использованием флага компилятора выше.
Ответ 4
Примечание. Если вы хотите отключить ARC для многих файлов, вам необходимо:
- открыть "Фазы сборки" → "Скомпилировать источники"
- выберите файлы с "left_mouse" + "cmd" (для разделенных файлов) или + "shift"
(для сгруппированных файлов - выберите первый и последний)
- нажмите "enter"
- Вставить
-fno-objc-arc
- снова нажмите "enter"
- прибыль!
Ответ 5
Это очень простой способ сделать отдельный файл не дугой.
Следуйте инструкциям ниже:
Отключить ARC в отдельном файле:
-
Выберите нужные файлы в разделе "Целевые/Сформировать фазы" / "Скомпилировать источники в Xcode"
-
Выберите файл .m, который вы хотите сделать НЕ-ARC
НАЖМИТЕ ВВОД
Тип -fno-objc-arc
Файл без ARC для флага проекта ARC: -fno-objc-arc
Файл ARC для флага проекта не ARC: -fobjc-arc
Ответ 6
Просто используйте флаг -fno-objc-arc
в Build Phases
> Compile Sources
Ответ 7
- Выберите проект Xcode
- Перейти к целям
- Выберите раздел "Фазы сборки"
- В разделе фазы сборки выберите источники компиляции.
- Выберите файл, который вы не хотите отключать ARC и добавьте -fno-objc-arc
![Disable ARC for a particular file]()
Ответ 8
Можно отключить ARC (автоматический подсчет ссылок) для определенного файла в Xcode.
Выбрать цель → Сформировать фазы → Скомпилировать источники → Выбрать файл (двойной щелчок) → Добавить "-fno-objc-arc" во всплывающее окно.
Я столкнулся с этой ситуацией при использовании файлов "Reachibility".
Это показано ниже:
![enter image description here]()
Ответ 9
использовать -fno-objc-arc для каждого файла в фазах сборки
Ответ 10
Четыре обязательных шага, как описано в этом видео
//1. Select desired files
//2. Target/Build Phases/Compile Sources
//3. Type -fno-objc-arc
//4. Done
Ответ 11
Пожалуйста, просто выполните скриншот и введите -fno-objc-arc.
![введите описание изображения здесь]()
Ответ 12
Если вы используете Unity, вам не нужно изменять это в Xcode, вы можете применить флаг компиляции в метаданных для определенных файлов (файлов), прямо внутри Unity. Просто выберите их на панели "Проект" и примените с панели "Инспектор". Это важно, если вы планируете использовать Cloud Build. ![введите описание изображения здесь]()
Ответ 13
Добавить флаг "-fno-objc-arc".
Простые шаги:
Приложение > Цели > Сборка фаз > Скомпилировать источники > добавить флаг после класса "-fno-objc-arc"
Ответ 14
Я думаю, что все остальные ответы объясняют, как отключить MRC (Manual Reference Count) и включить ARC (Automatic Reference Count).
Использование MRC (количество ссылок вручную), то есть отключение ARC (автоматического подсчета ссылок) для файлов MULTIPLE:
- Выберите желаемые файлы на этапах Target/Build/Compile Sources в Xcode
- НАЖМИТЕ ВВЕРХ
- Тип -fobjc-arc
- Нажмите "Enter" или "Готово"
Ответ 15
Чтобы отключить ARC для отдельных файлов, перейдите к фазе сборки в настройках проекта, затем щелкните по источникам компиляции.
Выберите файл .m для класса, для которого вы хотите отключить ARC, и установите флаги компилятора в -fno-objc-arc
![]()
Источник:
Отключить ARC для индивидуального класса
Ответ 16
Просто используйте флаг -fno-objc-arc в разделе "Сборка фаз" > "Скомпилируйте источники" перед файлами, к которым вы не хотите применять ARC.
Ответ 17
GO to App → then Targets → Build Phases → Compile Source
Теперь выберите файл, в котором вы хотите отключить ARC
вставьте этот фрагмент "-fno-objc-arc" После вставки нажмите ENTER
в каждом файле, где вы хотите отключить ARC.
Ответ 18
Следующий шаг для включения отключения ARC
Выберите проект Xcode
Перейти к объектам
Выберите раздел "Фазы сборки"
Внутри этапа фаз сборки выберите источники компиляции.
Выберите файл, который вы не хотите отключать ARC и добавьте -fno-objc-arc