【iOS】比较版本号大小算法

  • 一句话代码搞定,复制即用,做的相对完善,不完善的地方希望大家砍我改正哈!
  • 当然你可以利用字符串截取法来计算,不过那样的比较法要确定版本号的位数
  • 特点:
    1.输入三段(例:1.2.7)或以上(例:2.33.1.23)都可以检测
    2.实现简单,计算量很小

实现如下:

/**
 比较本地版本和最新版本号的大小

 @param lastVersionStr 最新版本,例:1.0.7或者2.0.2.11
 @return 如果本地版本<最新版本,返回1,否则返回0
 */
- (BOOL)compareLastVersion:(NSString *)lastVersionStr{
    //从info.plist文件获取Version
    NSString *version = [[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleShortVersionString"];
    //本地版本号
    NSInteger localVersion = [[version stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
    //最新版本号
    NSInteger lastVersion = [[lastVersionStr stringByReplacingOccurrencesOfString:@"." withString:@""] integerValue];
    //处理版本号缩减为两位
    lastVersion = lastVersion<100?lastVersion*=10:lastVersion;
    
    return localVersion<lastVersion?1:0;
}

使用如下:

    //1.输入版本号 1.3.0
    BOOL result = [self compareLastVersion:@"1.3.0"];
    if (result == 1) {
        NSLog(@"检测有新版本,赶紧更新吧大爷!");
    }else{
        NSLog(@"还JB不升级");
    }

注意点:尽量保持本地版本号和输入版本号段数一致

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,533评论 25 709
  • 让我掉下眼泪的不止昨夜的酒让我依依不舍的不止你的温柔.....和我在成都的街头走一走直到所有的灯都熄灭了也不停留—...
    冷小希J阅读 2,394评论 36 37
  • 1. 说明: CopyBundle Resources 主要是一些资源文件会被打包的时候会被放入app中。Link...
    纯情_小火鸡阅读 2,346评论 0 0
  • 今朝醉,泪眼滂沱一岁除,镰月梅红空虚度,夜半寒衾无人暖,举杯对邀月,何时报得美人共宵煮屠苏。心抚筝弦并琴胡,悲怆情...
    醉梦尘马小贱阅读 274评论 0 0