【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不升级");
    }

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

推荐阅读更多精彩内容