2012-01-15 2 views
2

У меня есть несколько функций C. И я вызываю коды Objective-C, включая [-release].Как определить, компилятор в настоящее время находится в режиме ARC?

Проблема заключается в том, что я должен скомпилировать этот код как для целей ARC, так и для не-ARC. Поэтому я думаю, что мне нужна условная компиляция с помощью предопределенного флага компилятора. Какой флаг я должен использовать для этого?

ответ

2

От http://lists.apple.com/archives/xcode-users/2011/Aug/msg00252.html:

проверки В LLVM компилятор, называются __has_feature. ARC является одним из функций, которые вы можете проверить.

#ifndef __has_feature 
// not LLVM Compiler 
#define __has_feature(x) 0 
#endif 

#if __has_feature(objc_arc) 
// compiling with ARC 
#else 
// compiling without ARC 
#endif 
Смежные вопросы