2
有没有一种方法可以测试(使用预处理器)如果文件正在Xcode 4.4或更新的版本下编译?或者,更具体地说,测试编译器是否会自动调用@synthesize
属性,如果不是则抛出编译错误?Xcode 4.4或更新版本的预处理器检查
有没有一种方法可以测试(使用预处理器)如果文件正在Xcode 4.4或更新的版本下编译?或者,更具体地说,测试编译器是否会自动调用@synthesize
属性,如果不是则抛出编译错误?Xcode 4.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
,因为这是提供与LLVM编译器的4.x版本中,你应该可以使用以下方法来测试新版本足够的存在:
#if __clang__ && (__clang_major__ >= 4)
// New version code here
#else
// Fallback code for older version here
#endif
是啊,这是清洁检查的功能,而不是编译器的版本,因为我WA这样做。 –
@BradLarson,但你的回答回答了问题+1的两个部分之一。 – justin