两个问题:
这段代码
#ifdef __IPHONE_3_0
// iPhone 3.0 specific stuff
#else
// iPhone 2.2 specific stuff
#endif
为特定版本的 iPhone 编译特定代码。如何将其转换为针对一系列设备进行编译?例如:如果 iphone 版本 < 3.1 或如果版本 >= 3.2,等等...
2) 我在哪里可以获得 Xcode 允许的所有条件的列表?
谢谢你的帮助。
两个问题:
这段代码
#ifdef __IPHONE_3_0
// iPhone 3.0 specific stuff
#else
// iPhone 2.2 specific stuff
#endif
为特定版本的 iPhone 编译特定代码。如何将其转换为针对一系列设备进行编译?例如:如果 iphone 版本 < 3.1 或如果版本 >= 3.2,等等...
2) 我在哪里可以获得 Xcode 允许的所有条件的列表?
谢谢你的帮助。
这些定义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
请注意,这是为了在编译时确定要包含的内容,而不是根据应用程序运行的操作系统版本选择性地启用代码。