iOS进行版本比对

如何在iOS中使用代码进行版本比对

项目中经常会遇到各种版本检测,目前想到两个方法进行版本比对,欢迎提出更多优化的方法

方法一:根据.进行比对

先比对.最左侧,然后按次序往后,代码如下


+ (NSComparisonResult)copmareVersonWithBase:(NSString*)baseversion compareVersion:(NSString*)compareVersion {

    //将两个版本号以“.”拆分成数组

    NSArray*currentVersions = [baseversioncomponentsSeparatedByString:@"."];

    NSArray* compareVersions = [compareVersioncomponentsSeparatedByString:@"."];



    //分别比较每一位的大小

    NSIntegercount = (currentVersions.count< compareVersions.count)?currentVersions.count:compareVersions.count;

    for(inti=0; i

        NSIntegercurrent = (int)currentVersions[i];

        NSIntegercompare = (int)compareVersions[i];

        if(current>compare) {

            return NSOrderedDescending;

        }elseif(current

            return NSOrderedAscending;

        }

    }



    //经过上面的for后还没有比较出来,说明两者相同位的版本号都相同,剩下的则看谁的版本号更长,长的则表示版本号大。例:11.0.1 < 11.0.1.1

    if(currentVersions.count< compareVersions.count){

        return NSOrderedAscending;//升序(说明当前版本较低)

    }elseif(currentVersions.count> compareVersions.count){

        return NSOrderedDescending;//降序(说明当前版本较高)

    }else{

        return NSOrderedSame;

    }

}

方法二:直接使用[compare:option:]方法


+ (NSComparisonResult)copmareVersonWithBase:(NSString*)baseversion compareVersion:(NSString*)compareVersion {



    NSComparisonResult result =[currentVersion compare:lastVersion options:NSNumericSearch];

    /*NSOrderedAscending; //升序(说明当前版本较低)

    NSOrderedDescending;//降序(说明当前版本较高)

    NSOrderedSame;//保持不变*/

    return result;

}

你可能感兴趣的:(iOS进行版本比对)