Прагма явно включить ARC? - PullRequest
       2

Прагма явно включить ARC?

11 голосов
/ 15 ноября 2011

Существует ли #pragma (или иным образом какая-либо конструкция) для явного включения автоматического подсчета ссылок (ARC) в исходном файле Objective-C (или Objective-C ++)?Еще лучше, если исходный файл может привести к сбою компиляции, если ARC не включен.

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

Заранее спасибо!

1 Ответ

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

Насколько я могу судить, нет способа явно включить или отключить ARC.

Однако возможно определить, включен ли он. Просто добавьте следующий фрагмент в любой файл, для которого требуется ARC.

#ifndef __has_feature
  #define __has_feature(x) 0 /* for non-clang compilers */
#endif

#if !__has_feature(objc_arc)
  #error ARC must be enabled!
#endif

Дополнительная информация:
http://clang.llvm.org/docs/AutomaticReferenceCounting.html
http://clang.llvm.org/docs/LanguageExtensions.html#__has_feature_extension

...