是否有相当于MAC_OS_X_VERSION_MIN_REQUIRED的iPhone?

时间:2009-03-28 00:31:50

标签: iphone cocoa cocoa-touch xcode

我想有条件地包含iPhone应用程序的代码,具体取决于我正在编译的SDK版本。在Mac OS X上,有MAC_OS_X_VERSION_MIN_REQUIRED预处理器宏,它被编译器设置为MACOSX_DEPLOYMENT_TARGET构建设置的值。 iPhone上有同等的产品吗?

更新

我在构建设置中将IPHONE_DEPLOYMENT_TARGET设置为3.0,但Xcode正在将-D__IPHONE_OS_VERSION_MIN_REQUIRED=20000-mmacosx-version-min=10.5传递给GCC。第一个不应该是30000而第二个不应该是-miphoneos-version-min=3.0吗?我做错了什么?

更新2:

看起来我没有做错任何事。在为设备构建时,__IPHONE_OS_VERSION_MIN_REQUIRED-miphoneos-version-min都已正确设置 - 使用iPhone模拟器SDK时,这只是错误的。我认为这是模拟器SDK中的一个错误。

3 个答案:

答案 0 :(得分:12)

答案 1 :(得分:3)

为每个版本的OS定义了预处理器宏。例如,如果定义了__IPHONE_OS_3_0,那么您将构建3.0 SDK(或者可能以后,我不确定)。

答案 2 :(得分:2)

对于它的价值,如果不存在这样一个宏,一个体面的解决方法是创建2个构建目标,并在其中一个中添加构建设置GCC_PREPROCESSOR_DEFINITIONS,其值为{{1} }。然后在您的代码中,您可以这样做:

IPHONE_OS_3