Как включить ARC для всего проекта в Xcode 4.2 - PullRequest
50 голосов
/ 20 сентября 2011

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

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

Новые проекты в 4.2 могут по умолчанию использовать ARC, поэтому где-то должен быть переключатель.

Может кто-нибудь помочь мне преобразовать проект в ARC

Ответы [ 3 ]

65 голосов
/ 14 октября 2011

"ARC доступен в Xcode 4.2, в настоящее время в бета-версии, и только при компиляции с Clang (он же« Apple LLVM compiler »). Параметр называется, очевидно,« Objective-C Automatic подсчет ссылок ».Включите его и выключите.

Если вы работаете с существующим кодом, изменение этого параметра приведет к огромному количеству ошибок. ARC не только управляет памятью, но и запрещает попыткисделайте это сами. Запрещено вручную отправлять retain / release / autorelease при использовании ARC. Так как нормальный код какао, не относящийся к ARC, изобилует этим материалом, вы получите много ошибок.

К счастью, Xcode предлагаетинструмент для преобразования существующего кода. Выберите Edit -> Refactor ... -> Convert to Objective-C ARC ... и Xcode проведет вас через процесс преобразования вашего кода. Хотя могут быть некоторые ситуации, когда оннужна помощь, чтобы понять, что делать, процесс должен быть в значительной степени автоматическим. "

Я взял это по этой ссылке, мне очень помогло: http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html

48 голосов
/ 12 ноября 2011

Выберите свой проект или цель, а затем перейдите к Параметры сборки и в разделе Компилятор Apple LLVM 3.0 - Язык вы увидите параметр Objective-C Автоматический подсчет ссылок .

5 голосов
/ 18 августа 2013

Для буксировки, в Xcode 4.6 вам нужно будет найти «CLANG_ENABLE_OBJC_ARC» и затем изменить его на «Да», чтобы включить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...