美文网首页
如何比较版本号

如何比较版本号

作者: 秦枫桀 | 来源:发表于2017-04-12 17:28 被阅读0次

    以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就解决了。

    相关文章

      网友评论

          本文标题:如何比较版本号

          本文链接:https://www.haomeiwen.com/subject/waimattx.html