У меня есть приложение с кодом 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. Я спрашиваю, потому что большую часть своего приложения я создаю из повторно используемых библиотек. Я хочу убедиться, что каждый файл скомпилирован правильно.