判断手机系统的版本号
来源:互联网 发布:消失的爱人 知乎 编辑:程序博客网 时间:2024/05/14 14:34
方法一:直接获取系统版本
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 TARGET_OS_IPHONE
#define NSFoundationVersionNumber_iPhoneOS_2_0 678.24
#define NSFoundationVersionNumber_iPhoneOS_2_1 678.26
#define NSFoundationVersionNumber_iPhoneOS_2_2 678.29
#define NSFoundationVersionNumber_iPhoneOS_3_0 678.47
#define NSFoundationVersionNumber_iPhoneOS_3_1 678.51
#define NSFoundationVersionNumber_iPhoneOS_3_2 678.60
#define NSFoundationVersionNumber_iOS_4_0 751.32
#define NSFoundationVersionNumber_iOS_4_1 751.37
#define NSFoundationVersionNumber_iOS_4_2 751.49
#define NSFoundationVersionNumber_iOS_4_3 751.49
#define NSFoundationVersionNumber_iOS_5_0 881.00
#define NSFoundationVersionNumber_iOS_5_1 890.10
#define NSFoundationVersionNumber_iOS_6_0 992.00
#define NSFoundationVersionNumber_iOS_6_1 993.00
#define NSFoundationVersionNumber_iOS_7_0 1047.20
#define NSFoundationVersionNumber_iOS_7_1 1047.25
#define NSFoundationVersionNumber_iOS_8_0 1140.11
#define NSFoundationVersionNumber_iOS_8_1 1141.1
#define NSFoundationVersionNumber_iOS_8_2 1142.14
#define NSFoundationVersionNumber_iOS_8_3 1144.17
#define NSFoundationVersionNumber_iOS_8_4 1144.17
#define NSFoundationVersionNumber_iOS_8_x_Max 1199
#define NSFoundationVersionNumber_iOS_9_0 1240.1
#define NSFoundationVersionNumber_iOS_9_1 1241.14
#define NSFoundationVersionNumber_iOS_9_2 1242.12
#define NSFoundationVersionNumber_iOS_9_3 1242.12
#define NSFoundationVersionNumber_iOS_9_4 1280.25
#define NSFoundationVersionNumber_iOS_9_x_Max 1299
#endif
可以看到,最上面判断了这是iPhone的系统,相应的还有Mac的系统。这些都是NSFoundationVersionNumber这个宏定义的值,
我们可以判断它来获取当前设备的系统版本,用法如下:
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提供了直接获取系统版本号的方法:
NSString *version = [UIDevice currentDevice].systemVersion;
if (version.doubleValue >= 9.0) {
// 针对 9.0 以上的iOS系统进行处理
} else {
// 针对 9.0 以下的iOS系统进行处理
}
方法二:通过Foundation框架版本号
iOS系统升级时Foundation框架也会升级版本号,我们可以通过获取Foundation的版本
号来判断对应的iOS版本,这个iOS也提供了很直观的宏来进行判断:
#if TARGET_OS_IPHONE
#define NSFoundationVersionNumber_iPhoneOS_2_0 678.24
#define NSFoundationVersionNumber_iPhoneOS_2_1 678.26
#define NSFoundationVersionNumber_iPhoneOS_2_2 678.29
#define NSFoundationVersionNumber_iPhoneOS_3_0 678.47
#define NSFoundationVersionNumber_iPhoneOS_3_1 678.51
#define NSFoundationVersionNumber_iPhoneOS_3_2 678.60
#define NSFoundationVersionNumber_iOS_4_0 751.32
#define NSFoundationVersionNumber_iOS_4_1 751.37
#define NSFoundationVersionNumber_iOS_4_2 751.49
#define NSFoundationVersionNumber_iOS_4_3 751.49
#define NSFoundationVersionNumber_iOS_5_0 881.00
#define NSFoundationVersionNumber_iOS_5_1 890.10
#define NSFoundationVersionNumber_iOS_6_0 992.00
#define NSFoundationVersionNumber_iOS_6_1 993.00
#define NSFoundationVersionNumber_iOS_7_0 1047.20
#define NSFoundationVersionNumber_iOS_7_1 1047.25
#define NSFoundationVersionNumber_iOS_8_0 1140.11
#define NSFoundationVersionNumber_iOS_8_1 1141.1
#define NSFoundationVersionNumber_iOS_8_2 1142.14
#define NSFoundationVersionNumber_iOS_8_3 1144.17
#define NSFoundationVersionNumber_iOS_8_4 1144.17
#define NSFoundationVersionNumber_iOS_8_x_Max 1199
#define NSFoundationVersionNumber_iOS_9_0 1240.1
#define NSFoundationVersionNumber_iOS_9_1 1241.14
#define NSFoundationVersionNumber_iOS_9_2 1242.12
#define NSFoundationVersionNumber_iOS_9_3 1242.12
#define NSFoundationVersionNumber_iOS_9_4 1280.25
#define NSFoundationVersionNumber_iOS_9_x_Max 1299
#endif
可以看到,最上面判断了这是iPhone的系统,相应的还有Mac的系统。这些都是NSFoundationVersionNumber这个宏定义的值,
我们可以判断它来获取当前设备的系统版本,用法如下:
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 以下系统的处理
}
阅读全文
0 0
- 判断手机系统的版本号
- 判断ios系统版本号的代码
- iOS 判断系统版本号的宏定义
- JS判断ios系统的版本号
- 判断windows系统版本号
- js判断手机系统版本为安卓还是苹果,苹果系统版本号
- 查看Android手机系统版本号
- 怎样判断所运行的ANDROID系统的SDK版本号
- 判断所运行的ANDROID系统的SDK版本号
- iOS - 判断当前系统版本号
- 判断ANDROID系统的版本号也即API Leve
- iOS判断系统版本号的四种方法
- 判断版本号的大小
- 获取设备IMEI ,手机名称,系统SDK版本号,系统版本号
- js 判断当前的手机系统类型
- js 判断当前的手机系统类型
- js 判断手机系统的方法
- js 判断当前的手机系统类型
- C#Sort排序
- A标签中通过href和onclick传递的this对象实现思路
- makefile强制目标
- 山东教师教育网-404、登录、密码找回、常见问题、绑定已有账户
- java Sting 如何替换指定位置的字符
- 判断手机系统的版本号
- 解决Spring文件下载时文件损毁问题
- Spring MVC 环境搭建(二)
- Java的反射
- Spring Data JPA 自定义查询
- mysql 安装过程中出错
- JQUERY中对scrollTop、scrollHeight的理解
- ubuntu下安装mysql及卸载mysql方法
- Educational Codeforces Round 29 题解