美文网首页笔记篇
app 比较两个版本号的大小

app 比较两个版本号的大小

作者: 失忆的程序员 | 来源:发表于2018-01-12 14:58 被阅读2次

/**

*  比较两个版本号的大小

*  v1 当前版本号

*  v2 服务器版本号

*  v1当前版 等于 服务器版v2,返回 0;

*  v1当前版 小于 服务器版v2,返回 -1;

*  v1当前版 大于 服务器版v2,返回 1.

*/

- (NSInteger)compareVersion:(NSString *)v1 to:(NSString *)v2 {

    // 都为空,相等,返回0

    if (!v1 && !v2) {

        return 0;

    }

    // v1为空,v2不为空,返回-1

    if (!v1 && v2) {

        return -1;

    }

    // v2为空,v1不为空,返回1

    if (v1 && !v2) {

        return 1;

    }

    // 获取版本号字段

    NSArray *v1Array = [v1 componentsSeparatedByString:@"."];

    NSArray *v2Array = [v2 componentsSeparatedByString:@"."];

    // 取字段最少的,进行循环比较

    NSInteger smallCount = (v1Array.count > v2Array.count) ? v2Array.count : v1Array.count;

    for (int i = 0; i < smallCount; i++) {

        NSInteger value1 = [[v1Array objectAtIndex:i] integerValue];

        NSInteger value2 = [[v2Array objectAtIndex:i] integerValue];

        if (value1 > value2) {

            // v1版本字段大于v2版本字段,返回1

            return 1;

        } else if (value1 < value2) {

            // v2版本字段大于v1版本字段,返回-1

            return -1;

        }

        // 版本相等,继续循环。

    }

    // 版本可比较字段相等,则字段多的版本高于字段少的版本。

    if (v1Array.count > v2Array.count) {

        return 1;

    } else if (v1Array.count < v2Array.count) {

        return -1;

    } else {

        return 0;

    }

    return 0;

}

相关文章

网友评论

    本文标题:app 比较两个版本号的大小

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