2012-05-17 2 views
2

Как я могу поместить директиву компилятора для исключения кода, отличного от ARC, поэтому общий код может использоваться с проектами, использующими ARC, и с проектами, которые этого не делают?Директива компилятора для ARC

Например:

MyClass *myClass = [MyClass alloc]init]; 
... 

#if NOT_USING_ARC 

[myClass release]; 

#endif 
+3

возможный дубликат [Проверить АРК в прекомпиляции] (http://stackoverflow.com/questions/7708267/check-for-arc-in-precompile) –

+0

Почему да это. Я тоже проголосую за это. –

ответ

3

Вы можете использовать:

#if __has_feature(objc_arc) 
    ... 
#else 
    ... 
#endif 
+0

Это то, что я искал, но это точный дубликат http://stackoverflow.com/questions/7708267/check-for-arc-in-precompile. Пожалуйста, проголосуйте, чтобы закрыть этот вопрос. –

1

Существует рефакторинг, который будет конвертировать ваши классы, чтобы быть совместимым с ARC.

В меню XCode: Edit - Refactor - преобразовать в ARC Objective-C.

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

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

+1

Отличный ответ. Большинство людей упускают из виду первый вариант ... –

+0

Я уже использую эту опцию в других местах, просто нужно знать, как сделать директиву компилятора inline. –

Смежные вопросы