哪些Xcode宏可以用来检查编译计算机的操作系统版本



使用Xcode 4构建iOS应用程序:2个开发人员,一个使用10.6.8,一个使用10.7。在10.7中,NSURLConnectionDelegate接口是显式的:它是定义的,可以添加到接口声明中。然而,在10.6.8中,它没有定义,并且生成了编译错误(NSURLConnectionDelegate: cannot find protocol declaration)。这个错误可以通过简单地删除声明来修复。我正在寻找一个编译器宏,确定哪个操作系统版本的代码正在构建,所以我可以修改代码,以兼容两个操作系统版本。比如:

#if _CURRENT_OS_X_IS_10_7_OR_HIGHER
@interface appDelegate : NSObject<UIApplicationDelegate, NSURLConnectionDelegate> {
#else
@interface appDelegate : NSObject<UIApplicationDelegate> {
#endif

您应该能够使用NSAppKitVersionNumber和/或NSFoundationVersionNumber17_0

编辑

当你为iOS编译时,你将无法使用来自Mac OS框架的任何宏。你唯一的机会是Xcode/GCC预定义的宏。

你可以用:

gcc -arch i386 -dM -E - < /dev/null | sort

这似乎很有趣:

__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__

最新更新