Как требовать ARC в классе?

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

9
задан Josh Caswell 5 December 2011 в 08:06
поделиться