iOS小记 -- iOS判断系统版本号的方法

方法一:直接获取系统版本 iOS提供了直接获取系统版本号的方法:

NSString *version = [UIDevice currentDevice].systemVersion;

if (version.doubleValue >= 9.0) {

// 针对 9.0 以上的iOS系统进行处理

} else {

// 针对 9.0 以下的iOS系统进行处理

}

这种方法应该说也是最常见和常用的方法了。


方法二:通过Foundation框架版本号

iOS系统升级时Foundation框架也会升级版本号,我们可以通过获取Foundation的版本号来判断对应的iOS版本,这个iOS也提供了很直观的宏来进行判断:

if (NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_9_0) {

// iOS 9.0 以上系统的处理

} else {

// iOS 9.0 以下系统的处理

}


方法三:根据特有的类判断

比如说 UIAlertController 这个类,是iOS 8之后才出现的,用来取代 UIAlertView 和 UIActionsheet 的,如果当前系统没有这个类,说明是低于iOS 8的,可以这么判断:

if (NSClassFromString(@"UIAlertController")) {

// 存在这个类 // iOS 8.0 以上系统的处理

} else {

// iOS 8.0 以下系统的处理

 }


方法四:根据特有的方法进行判断

类似于根据特有的类来判断,有些方法也是某个系统版本之后才出现的,根据有无这个方法即可得知当前版本号的范围,比如 boundingRectWithSize:options:attributes:context: 这个方法是 iOS 7.0 之后才有的,可以这样判断:

if ([@"" respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) {

// 存在这个方法 // iOS 7.0 以上系统的处理

} else {

// iOS 7.0 以下系统的处理

}

其实根据类和方法来判断直接就可以决定使用什么类和方法了,也算是跳过了先判断系统然后选择方法这一步,严格来说已经不算是为了判断系统版本了。

你可能感兴趣的:(iOS小记 -- iOS判断系统版本号的方法)