Pragma для явного включения ARC?
Существует ли #pragma
(или иначе какая-либо конструкция) для явного включения автоматического подсчета ссылок (ARC) в исходный файл Objective-C (или Objective-C ++)? Еще лучше, если исходный файл может привести к сбою компиляции, если ARC не включен.
У меня появилось несколько исходных файлов ARC, которые могут быть потенциально доступны другим проектам. Большинство из них содержат методы категорий для расширения встроенных классов. Я просто не хочу случайно включать их в проект без ARC и запускает утечку памяти.
Спасибо заранее!
Ответы
Ответ 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