美文网首页
iOS进行版本比对

iOS进行版本比对

作者: 木菀 | 来源:发表于2018-08-02 18:33 被阅读119次

    如何在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进行版本比对

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