Подтвердить что ты не робот

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

Я знаю, что я должен добавить флаг компилятора -fno-objc-arc в компиляцию источников в XCode 4, чтобы выполнить это. Но он не работает. Даже с добавленным флагом я все еще получаю ошибки в моем файле KeychainItemWrapper.m, требуя, чтобы мне нужно было использовать __bridge для указателей C.

I have added the required flag to the compiled sources... what am I missing?

Мой проект безопасен ARC, но Apple предоставила ссылку для взаимодействия с Keychain. Я хотел бы просто отключить ARC для этого единственного файла. Что еще мне здесь не хватает?

4b9b3361

Ответ 1

У меня это случалось более одного раза для меня в 4.2 в разных проектах, но тогда я не смог воспроизвести его достаточно надежно для отчета об ошибке. Но я могу сказать, что в моих случаях чистая сборка очистила его.

Ответ 2

Нажмите "Изменить", перейдите в "Рефакторинг" > "Преобразовать" в Objective-C ARC... Нажмите треугольник раскрытия рядом с именем вашего проекта и проверьте все файлы, для которых вы хотите использовать ARC.

Ответ 3

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

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

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

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