iOS 比较版本号

释放双眼,带上耳机,听听看~!

以iOS系统的版本号来举例说明

错误示范:

一、floatValue的问题

 

[UIDevice currentDevice].systemVersion.floatValue > 10.3

首先,NSString转float类型时,精度会丢失。
其次,如果要和10.3.1比较时,10.3.1不是float类型,无法比较,只能和两段式的版本号比较。

二、compare的问题

 

[[UIDevice currentDevice].systemVersion compare:@"9.0"] != NSOrderedAscending

上面的代码,在iOS 10之前的机器上是没毛病的。
iOS 10的机器上,上面的代码判断会失效。
原因是compare:方法会先比较第一位,如果你设备版本号是10.3.1,那么第一位是1,用它和9比较。而不是你想象中的用10和9比较。

正确示范:

使用compare: options:方法

 

[[UIDevice currentDevice].systemVersion compare:@"9.0" options:NSNumericSearch] != NSOrderedAscending

options:设置为NSNumericSearch就解决了。

 

人已赞赏
iOS文章

解决.pcm No such file or directory报错

2019-12-23 15:35:23

iOS文章

iOS 网速监听工具

2019-12-23 15:54:43

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索