0

两个问题:

这段代码

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

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

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

谢谢你的帮助。

4

1 回答 1

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

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

于 2010-03-12T04:29:38.993 回答