iphone - 编译条件

时间:2010-03-12 02:20:56

标签: iphone iphone-sdk-3.0 ipad

两个问题:

此代码

#ifdef __IPHONE_3_0
    // iPhone 3.0 specific stuff
#else
    // iPhone 2.2 specific stuff
#endif

为特定版本的iPhone编译特定代码。如何将其转换为针对一系列设备进行编译?例如:如果iphone版本< 3.1或者版本> = 3.2,等等......

2)我在哪里可以获得Xcode允许的所有条件的列表?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这些定义位于Availability.h中,位于您使用的任何SDK中。例如,您可以在

找到3.0模拟器的版本
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h

作为一个注释,通过突出显示它们,右键单击并从弹出菜单中选择“跳转到定义”,可以很容易地查找__IPHONE_3_0之类的常量。

Availability.h中,标题本身详细描述了如何有选择地编译各种版本。例如,要仅在iPhone OS版本大于3.0时编译代码,您可以使用

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0
// Your code here
#endif

请注意,这是为了确定在编译时要包含的内容,而不是根据运行应用程序的操作系统版本有选择地启用代码。