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

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

Я добавил требуемый флаг в скомпилированные исходники... что мне не хватает?

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


person Justin    schedule 23.11.2011    source источник
comment
Являются ли KeychainItemWrapper.m и KeychainItem.m двумя отдельными файлами? Вы также отключили ARC для KeychainItem.m, если да?   -  person Chris Wagner    schedule 24.11.2011
comment
Вы смотрели на вывод сборки, чтобы увидеть, действительно ли он включает / не включает эти флаги компилятора при компиляции этого конкретного файла?   -  person mharper    schedule 24.11.2011


Ответы (3)


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

person Firoze Lafeer    schedule 23.11.2011
comment
После долгих головоломок это было решение, к которому я в конечном итоге пришел. Спасибо :) - person Justin; 28.11.2011

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

person Drew C    schedule 23.11.2011

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

Вы добавляете флаги компилятора в Targets -> Build Phases -> Compile Sources. Вы должны дважды щелкнуть по правому столбцу строки под флагами компилятора. Вы также можете добавить его в несколько файлов, удерживая кнопку cmd, чтобы выбрать файлы, а затем нажав клавишу ввода, чтобы открыть окно редактирования флажка.

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

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

person Dinesh_    schedule 06.12.2012