如何使用宏检测iPhone OS版本

如何使用宏检测iPhone OS版本,iphone,Iphone,我想在我的应用程序中检测iPhone OS版本。我尝试过使用检测代码,但被建议使用宏。是否有人有经验,您是否可以发布示例代码,以及使用什么库。我不确定建议您使用什么宏。我一直认为找到版本号的标准方法是使用 NSString* versionNumber = [[UIDevice currentDevice] systemVersion] 它以NSString的形式给出,如@“2.0”或@“2.2.1” 有描述版本基础类使用的版本常量,用 NSoundation版本号,但我不确定在旧代码和未来代

我想在我的应用程序中检测iPhone OS版本。我尝试过使用检测代码,但被建议使用宏。是否有人有经验,您是否可以发布示例代码,以及使用什么库。

我不确定建议您使用什么宏。我一直认为找到版本号的标准方法是使用

NSString* versionNumber = [[UIDevice currentDevice] systemVersion]
它以NSString的形式给出,如@“2.0”或@“2.2.1”


有描述版本基础类使用的版本常量,用<代码> NSoundation版本号<代码>,但我不确定在旧代码和未来代码中会有多可靠。

查看可用性。h,具体地陈述:

#define __IPHONE_2_0     20000
#define __IPHONE_2_1     20100
#define __IPHONE_2_2     20200
#define __IPHONE_3_0     30000
#define __IPHONE_NA      99999
别忘了阅读巨大的标题评论。
预处理器宏绝对是按操作系统版本划分代码的最安全的方法。

请告诉我答案:p要补充,它们最可能引用的宏是预处理器宏(#define)。这不是它的工作原理,但我可以看到人们如何假设版本将以这种方式定义。预处理器宏将允许您根据目标iPhone OS版本进行条件编译,但不会检测应用程序运行的iPhone OS版本。例如:#如果"IPHONE"操作系统"版本"最低"要求>="IPHONE"2"我相信这些是为IPHONE应用程序编写库的,而不是为应用程序本身。但这可能就是迈克所指的。但我相当确定这是用于编译,而不是用于运行时版本检测。是的,这只是编译时。如果使用twitter或cloudservices的代码,这种方法非常有用。开发人员为Mac OS和iPhone创建自己的“库”。说到用户界面,这个makros真的很有帮助。谢谢!