Ho un'app con codice ARC e codice non ARC. Il compilatore prenderà quando cerco di compilare un codice non ARC come ARC. Come posso causare un errore/avviso di compilazione quando il mio codice ARC è compilato erroneamente senza ARC? Ovviamente, il codice verrà compilato. Sarà solo una perdita. L'analizzatore statico coglierà il problema. Preferirei trovare un modo per lasciare un pragma o definire nel mio codice ARC.Come richiedere l'ARC in una classe?
Il seguente è definito da Apple nel 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
My C-macro-fu è debole. Come lo userei? O forse c'è un simbolo migliore da controllare?
P.S. Lo chiedo perché costruisco gran parte della mia app da librerie riutilizzabili. Voglio assicurarmi che ogni file sia compilato nel modo giusto.
Grazie per la macro. – adonoho