Подтвердить что ты не робот

Pragma для явного включения ARC?

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

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

Спасибо заранее!

4b9b3361

Ответ 1

Насколько я могу судить, нет возможности явно включать или отключать 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