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

时间:2011-08-19 01:51:45

标签: xcode4 osx-lion osx-snow-leopard

使用Xcode 4:2开发人员构建iOS应用程序,一个使用10.6.8,一个使用10.7。在10.7中,NSURLConnectionDelegate接口是显式的:它已定义并可以添加到接口声明中。但是,在10.6.8中,它没有定义,并且生成了编译错误( NSURLConnectionDelegate:找不到协议声明)。只需删除声明即可解决此错误。我正在寻找一个编译器宏来识别构建代码的操作系统版本,因此我可以修改代码以兼容两个操作系统版本。类似的东西:

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

1 个答案:

答案 0 :(得分:1)

您应该可以使用NSAppKitVersionNumber和/或NSFoundationVersionNumber17_0

修改

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

您可以使用以下方式查看它们:

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

这看起来很有趣:

__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__