Tengo una aplicación con código ARC y código que no es ARC. El compilador captará cuando intente compilar código que no sea ARC como ARC. ¿Cómo causo un error/aviso de tiempo de compilación cuando mi código ARC se compila erróneamente sin ARC? Obviamente, el código compilará. Simplemente se escapará. El analizador estático detectará el problema. Prefiero encontrar una manera de dejar un pragma o definir en mi código ARC.¿Cómo se requiere ARC en una clase?
La siguiente es definido por Apple en 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
Mi C-macro-fu es débil. ¿Cómo lo usaría? O tal vez hay un mejor símbolo para verificar?
P.S. Lo pregunto porque construyo gran parte de mi aplicación en bibliotecas reutilizables. Quiero asegurarme de que cada archivo se compile de la manera correcta.
Gracias por la macro. – adonoho