方案一
double systemVersion = [UIDevice currentDevice].systemVersion.boolValue;
if (systemVersion >= 7.0) {
// >= iOS 7.0
} else {
// < iOS 7.0
}
if (systemVersion >= 10.0) {
// >= iOS 10.0
} else {
// < iOS 10.0
}
如果只是大致判断是哪个系统版本,上面的方法是可行的,如果具体到某个版本,如 10.0.1,那就会有偏差。我们知道systemVersion依旧是10.0。
方案二
NSString *systemVersion = [UIDevice currentDevice].systemVersion;
NSComparisonResult comparisonResult = [systemVersion compare:@"10.0.1" options:NSNumericSearch];
if (comparisonResult == NSOrderedAscending) {
// < iOS 10.0.1
} else if (comparisonResult == NSOrderedSame) {
// = iOS 10.0.1
} else if (comparisonResult == NSOrderedDescending) {
// > iOS 10.0.1
}
或者
if (comparisonResult != NSOrderedAscending) {
// >= iOS 10.0.1
} else {
// < iOS 10.0.1
}
有篇博客提到,这种方法不靠谱。比如系统版本是10.1.1,而我们提供的版本是8.2,会返回NSOrderedAscending
,即认为10.1.1 < 8.2 。
其实,用这样的比较方式NSComparisonResult comparisonResult = [systemVersion compare:@"10.0.1"]
,的确会出现这种情况