欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

版本号判断问题

程序员文章站 2022-07-07 17:38:03
...

背景:客户端接收到服务端返回的线上版本号, 客户端判断线上版本是否比当前版本新, 如果存在新的版本号, 客户端需要弹出提示框提示用户下载新的客户端.
之前的代码是这样写的:

CGFloat service = [model.version floatValue];
CGFloat local = [[UserLoginHelper sharedInstance].systemVersion floatValue];
if (service > local) {
    model.isHaveNewVersion = YES;
}

这样写出现的问题是:
当版本号 为 **.**.** 的样式时, 比如 1.20.22 时, 转化成float再比较大小的方法就不可行了.改进后的代码如下:

改进后的代码

NSString *localVison = @"1.11.20";
NSString *servceVison = @"2.11.20";
if (servceVison && ([servceVison compare:localVison] == NSOrderedDescending)) {
    isHaveNewVersion = YES;
}
NSLog(@"是否存在新版本:%@",[email protected]"是":@"否");