【发布时间】:2012-08-25 14:20:46
【问题描述】:
如果一个文件是在 Xcode 4.4 或更高版本下编译的,有没有办法测试(使用预处理器)?或者,更具体地说,测试编译器是否会自动 @synthesize 属性,如果没有则抛出编译错误?
【问题讨论】:
标签: xcode xcode4 clang c-preprocessor
如果一个文件是在 Xcode 4.4 或更高版本下编译的,有没有办法测试(使用预处理器)?或者,更具体地说,测试编译器是否会自动 @synthesize 属性,如果没有则抛出编译错误?
【问题讨论】:
标签: xcode xcode4 clang c-preprocessor
您可以使用它来测试该功能:
#if (defined(__clang__) && __has_feature(objc_default_synthesize_properties))
#warning Got it
#else
#error omg no auto synthesis
#endif
此处记录了完整的功能列表:http://clang.llvm.org/docs/LanguageExtensions.html
【讨论】:
因为这是在 4.x 版本的 LLVM 编译器中提供的,所以您应该能够使用以下内容来测试是否存在足够新的版本:
#if __clang__ && (__clang_major__ >= 4)
// New version code here
#else
// Fallback code for older version here
#endif
【讨论】: