У меня есть приложение с кодом ARC и кодом без ARC. Компилятор будет ловить, когда я пытаюсь скомпилировать не-ARC-код как ARC. Как вызвать ошибку / уведомление о времени компиляции, когда мой код ARC ошибочно скомпилирован без ARC? Очевидно, код скомпилируется. Это будет просто утечка. Статический анализатор поймает проблему. Я предпочел бы найти способ оставить прагму или определить в моем коде ARC.
Apple определяет следующее в objc-api.h
:
/* OBJC_ARC_UNAVAILABLE: unavailable with -fobjc-arc */
#if !defined(OBJC_ARC_UNAVAILABLE)
# if __has_feature(objc_arr)
# define OBJC_ARC_UNAVAILABLE __attribute__((unavailable("not available in automatic reference counting mode")))
# else
# define OBJC_ARC_UNAVAILABLE
# endif
#endif
Мой C-macro-fu слабый. Как бы я использовал это? Или, может быть, есть лучший символ для проверки?
P.S. Я спрашиваю, потому что я строю большую часть своего приложения из многоразовых библиотек Я хочу убедиться, что каждый файл скомпилирован правильно.