iOS 比较版本号大小的方法

比较iOS版本号大小 eg:3.2.0和3.1.0 或者 3.2.0和3.2比较
返回bool值变量YES or NO

在APP迭代更新过程中,有这样的需求,需要比较版本号的大小,然后弹出提示框提示更新.

之前版本号一直是中规中矩的按照1.1.0 --> 1.1.2这种数字变化方式.采用的方法是:将版本号字符串中的.号删除掉之后,比较两个数字的大小,后来发现在App Store中,各种APP的版本号数字变化的格式千奇百怪,1.0.11-->1.1.0,如果还采用上面的方法比较版本号,就不对了1011(本地version)肯定是大于110(线上版本),而实际上1.1.0是1.0.11的下一个版本.

解决方法:

版本号是分成三个模块来命名的,所以比较大小还是将三个部分剖开来比较大小兼容性强一些,万一遇到版本号命名没有按照规定的格式来,到时候大小就判断错了.

思路是这样的:三个部分,从第一个部分开始比较大小,优先级:第一部分>第二部分>第三部分,一旦分出大小就代表比较结束了,只要前面一部分大,无论后面一部分怎么小都没关系.

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000; background-color: #fffcea }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #fffcea }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #fffcea; min-height: 14.0px }
span.s1 { font: 11.0px Menlo; color: #36568a }
span.s2 { font: 11.0px Menlo; color: #c35900 }
span.s3 { font: 13.0px Menlo }
span.s4 { color: #c35900 }
span.s5 { color: #587ea8 }
span.s6 { color: #e82300 }
span.s7 { color: #cf8724 }
span.s8 { text-decoration: underline }
span.s9 { font: 11.0px Menlo; color: #e82300 }
span.s10 { font: 11.0px Menlo; color: #cf8724 }
span.s11 { font: 11.0px Menlo; color: #587ea8 }

-(BOOL)compareVesionWithServerVersion:(NSString *)version{

NSArray *versionArray = [version componentsSeparatedByString:@"."];//服务器返回版

NSArray *currentVesionArray = [APP_VERSION componentsSeparatedByString:@"."];//当前版本

NSInteger a = (versionArray.count> currentVesionArray.count)?currentVesionArray.count : versionArray.count;

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

NSInteger a = [[versionArray safeObjectAtIndex:i] integerValue];

NSInteger b = [[currentVesionArray safeObjectAtIndex:i] integerValue];

if (a > b) {

NSLog(@"有新版本");

return YES;

}else if(a < b){

return NO;

}

return NO;

}

原文地址:https://www.cnblogs.com/edensyd/p/8416965.html

时间: 2024-10-09 16:46:38

iOS 比较版本号大小的方法的相关文章

ios 改变图片大小缩放方法

http://www.cnblogs.com/zhangdadi/archive/2012/11/17/2774919.html http://bbs.csdn.net/topics/390898581 ios 改变图片大小缩放方法 -(UIImage*) OriginImage:(UIImage *)image scaleToSize:(CGSize)size{    UIGraphicsBeginImageContext(size);  //size 为CGSize类型,即你所需要的图片尺寸

获取iOS文件夹大小

提供一种获取iOS文件夹大小的方法.没有使用对文件夹内的文件枚举与文件大小字节数的累加. NSURL *cacheDirectory = [[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMaskappropriateForURL:nil create:NO error:nil]; NSDictionary *attributes = [[NSFileManager def

检测SDWebImage有没有缓存图片 IOS 获取网络图片大小

NSURL *url = [NSURL URLWithString:[model.content objectForKey:@"image"]];             //请求网络地址数据的同步方法             //因为这个方法在子线程(全局队列)中执行,所以不需要考虑死线程的问题             SDWebImageManager *manager = [SDWebImageManager sharedManager];              [manag

ios中图像进行压缩方法汇总

ios中图像进行压缩方法汇总 在Iphone上有两种读取图片数据的简单方法: UIImageJPEGRepresentation和UIImagePNGRepresentation. UIImageJPEGRepresentation函数需要两个参数:图片的引用和压缩系数.而UIImagePNGRepresentation只需 要图片引用作为参数. 方法一: 代码如下: - (UIImage*)scaleFromImage:(UIImage*)image scaledToSize:(CGSize)

iOS开发- 版本号介绍

这是篇基础文章, 简单介绍 iOS 的版本号. 名词解释 Version, 通常说的版本号, 是应用向用户宣传说明时候用到的标识. 一般有2段或者3段式, 如:2.1,8.1.2 Version 一般由产品部门确定, 完全迥异的更新需要改变主版本号, 比如 QQ 4.0 的变化非常大, 主版本的变化会更加吸引用户的眼球,所以有的应用会频繁的更新主版本号, 比如 FireFox 20.0 . 两段式的副版本号既包含小功能更新也会包含 bug 修复等,三段式副版本基本都是新功能添加和大问题修复,第三

Unity引擎IOS执行档大小优化

简介 苹果对于IOS执行档的大小是有明确的限制的,其中TEXT段的大小不能超过80M,否则提审将会被苹果拒绝,同时,如果TEXT段过于太大,那么在苹果进行加密之后,很容易出现解压失败等各种异常,最终导致游戏无法正常运行.因此,理论上我们应该尽可能保持我们的执行档TEXT段大小小于80M,根据经验,始终保持在60-70M以下是相对比较保险的.请注意,这里说的80M是包含armv7和arm64两种架构的执行档的TEXT段之和而并非单个架构,即单个架构的TEXT段大小不能超过40M. IOS的执行档格

iOS 获取最新设备型号方法

1.IOS 获取最新设备型号方法 列表最新对照表:http://theiphonewiki.com/wiki/Models 方法: #import "sys/utsname.h" struct utsname systemInfo; uname(&systemInfo); NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

ios图片拉伸两种方法

ios图片拉伸两种方法 UIImage *image = [UIImage imageNamed:@"qq"]; 第一种: // 左端盖宽度 NSInteger leftCapWidth = image.size.width * 0.5f; // 顶端盖高度 NSInteger topCapHeight = image.size.height * 0.5f; // 重新赋值 image = [image stretchableImageWithLeftCapWidth:leftCapW

Altium Designer XX 重新定义板框形状和大小的方法

Altium Designer15 重新定义板框形状和大小的方法:重新定义板框形状和大小的方法.很简单,点击数字键“1”,就会看到板框界面变绿了这时候你在去点击菜单栏里的Design(设计),就可以看到Redefine Board Shape(重新定义板框形状)等选项当然按下数字键“1”后,也可使用快捷键“D”+“R”,就会看到鼠标的光标变成了十字形,这时候拖动十字光标,即可拖出你需要的版型了哈哈哈哈! 作者:叶成链接:https://www.zhihu.com/question/2974081