使用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
答案 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__