25

可能重复:
检查 iPhone iOS 版本

我想在 iOS 中检查 iOS 版本。

因为我有一些仅适用于 iOS 6 的代码。

那我该怎么办?

4

3 回答 3

49

检查这个 GitHub Gist https://gist.github.com/998472

您可以添加代码或将其包含在您的 ...-Prefix.pch 文件中,这样您就可以在任何需要的地方使用它。


编辑

我将留下一个示例,说明如何使用 Gist 中的代码,以便人们检查它是否对他们的案例有用。这也可以在 Gist 上找到。

/*
 *  Usage
 */ 

if (SYSTEM_VERSION_LESS_THAN(@"4.0")) {
    ...
}

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"3.1.1")) {
    ...
}
于 2012-09-24T08:55:05.287 回答
40

试试这个:

更新:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];

if ([[vComp objectAtIndex:0] intValue] >= 7) {
    // iOS-7 code[current] or greater
} else if ([[vComp objectAtIndex:0] intValue] == 6) {
    // iOS-6 code
} else if ([[vComp objectAtIndex:0] intValue] > 2) {
    // iOS-3,4,5 code
} else {
    // iOS-1,2... code: incompatibility warnings, legacy-handlers, etc..  
}

以前的代码:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];

if ([[vComp objectAtIndex:0] intValue] == 6) {
    // iOS-6 code
} else {
    // iOS-5, iOS-4... code     
}

要专门检查 IOS 使用的颠覆

float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue];

if (sysVer > 6.01) {
    // iOS-6.01+ code
} else {
    // prior iOS versions
}
于 2012-09-24T08:52:53.447 回答
12

您可以使用以下命令将 iOS 版本作为字符串获取:

[[UIDevice currentDevice] systemVersion]
于 2012-09-24T08:50:21.653 回答