背景:客户端接收到服务端返回的线上版本号, 客户端判断线上版本是否比当前版本新, 如果存在新的版本号, 客户端需要弹出提示框提示用户下载新的客户端.
之前的代码是这样写的:
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(@"是否存在新版本:%@",isHaveNewVersion?@"是":@"否");