2

如果文件在 Xcode 4.4 或更高版本下编译,有没有办法测试(使用预处理器)?或者,更具体地说,测试编译器是否会自动@synthesize属性并抛出编译错误?

4

2 回答 2

4

您可以使用它来测试该功能:

#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

于 2012-08-30T22:18:57.887 回答
2

因为这是在 4.x 版本的 LLVM 编译器中提供的,所以您应该能够使用以下内容来测试是否存在足够新的版本:

#if __clang__ && (__clang_major__ >= 4)
 // New version code here
#else
 // Fallback code for older version here
#endif
于 2012-08-30T22:03:49.567 回答