Об использовании retain в релизе кода с поддержкой ARC - PullRequest
0 голосов
/ 06 января 2012

Это про ARC в IOS 5.

Предположим, что включена поддержка ARC, и я все еще использую в коде retain release и т. Д. Есть ли риски? или это будет обработано автоматически ??

Я знаю, что ARC можно избежать для определенных файлов. Но в этом случае я ничего не сделал, чтобы удалить ARC для этого файла. Этот файл теперь является смешанным (с выпуском для некоторых распределений и без выпуска для некоторых распределений).

Какие риски ожидаются в такой среде? Спасибо за любую помощь!

- мия

Ответы [ 3 ]

1 голос
/ 06 января 2012

Вы не можете использовать retain или release в коде с поддержкой ARC.Это просто не разрешено - компилятор выдаст ошибку.Если вы явно не указываете компилятору, что файл не должен компилироваться с включенным ARC (с использованием флага -fno-objc-arc), и вы вызываете release, ваш код не будет компилироваться.

Надеюсь, это поможет!

0 голосов
/ 02 октября 2013

Миа, это на самом деле не соответствует действительности.Если вы компилируете из командной строки, используя Clang, и скажете ему использовать ARC с флагом -fobjc-arc, вы можете обойтись без [освобождения объекта] и т. Д. Похоже, что это xCode, который блокирует использование этих вызовов управления памятью.

Однако, как и предполагал lxt, вы НЕ сможете вызывать release / retain, если ARC включен в проекте xCode, если вы явно не добавите -fno-objc-arc в качестве флага компилятора дляФайл в вашем проекте требует его.

0 голосов
/ 06 января 2012

Предположим, что включен ARC, и я все еще использую retain release и т. Д. В коде

Ты не можешь. Если вы это сделаете, вы получите ошибку компилятора.

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