Как можно отключить ARC для конкретного файла - PullRequest
12 голосов
/ 24 ноября 2011

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

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

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

Ответы [ 3 ]

6 голосов
/ 24 ноября 2011

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

1 голос
/ 06 декабря 2012

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

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

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

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

1 голос
/ 24 ноября 2011

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

...