iOS APP版本更新比较版本号大小
2017-02-14 09:58
555 查看
需求来源:
在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的下一个版本.
解决方法:
版本号是分成三个模块来命名的,所以比较大小还是将三个部分剖开来比较大小兼容性强一些,万一遇到版本号命名没有按照规定的格式来,到时候大小就判断错了.
思路是这样的:三个部分,从第一个部分开始比较大小,优先级:第一部分>第二部分>第三部分,一旦分出大小就代表比较结束了,只要前面一部分大,无论后面一部分怎么小都没关系.
NSString *localVerson=[GlobalFuction
appVerson];//获取本地版本号
//将版本号按照.切割后存入数组中
NSArray *localArray = [localVerson
componentsSeparatedByString:@"."];
NSArray *appArray = [versonAPP
componentsSeparatedByString:@"."];
NSInteger minArrayLength =
MIN(localArray.count, appArray.count);
BOOL needUpdate =
NO;
for(int i=0;i<minArrayLength;i++){//以最短的数组长度为遍历次数,防止数组越界
//取出每个部分的字符串值,比较数值大小
NSString *localElement = localArray[i];
NSString *appElement = appArray[i];
NSInteger localValue = localElement.integerValue;
NSInteger appValue = appElement.integerValue;
if(localValue<appValue) {
//从前往后比较数字大小,一旦分出大小,跳出循环
needUpdate = YES;
break;
}else{
needUpdate = NO;
}
}
if (needUpdate) {
//弹出提示更新弹框
}
在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的下一个版本.
解决方法:
版本号是分成三个模块来命名的,所以比较大小还是将三个部分剖开来比较大小兼容性强一些,万一遇到版本号命名没有按照规定的格式来,到时候大小就判断错了.
思路是这样的:三个部分,从第一个部分开始比较大小,优先级:第一部分>第二部分>第三部分,一旦分出大小就代表比较结束了,只要前面一部分大,无论后面一部分怎么小都没关系.
NSString *localVerson=[GlobalFuction
appVerson];//获取本地版本号
//将版本号按照.切割后存入数组中
NSArray *localArray = [localVerson
componentsSeparatedByString:@"."];
NSArray *appArray = [versonAPP
componentsSeparatedByString:@"."];
NSInteger minArrayLength =
MIN(localArray.count, appArray.count);
BOOL needUpdate =
NO;
for(int i=0;i<minArrayLength;i++){//以最短的数组长度为遍历次数,防止数组越界
//取出每个部分的字符串值,比较数值大小
NSString *localElement = localArray[i];
NSString *appElement = appArray[i];
NSInteger localValue = localElement.integerValue;
NSInteger appValue = appElement.integerValue;
if(localValue<appValue) {
//从前往后比较数字大小,一旦分出大小,跳出循环
needUpdate = YES;
break;
}else{
needUpdate = NO;
}
}
if (needUpdate) {
//弹出提示更新弹框
}
相关文章推荐
- iOS app版本更新和版本号的比较
- iOS比较版本(为了在app中提示更新版本)
- iOS中APP版本号的比较方法
- [ios]获取app版本更新检测的不同语言信息
- iOS版本更新的App提交审核发布流程
- IOS 获取当前版本号监测版本更新
- iOS版本更新的App提交审核发布流程
- iOS App的版本检测更新功能(最新版)
- 提交至APP STORE的APP和APP更新必须使用Xcode5.1.1(或更高级版本)及ios 7 sdk进行构建
- 工具链无效。新 App 和 App 更新必须使用公共(正式)版 Xcode 6 或更高版本以及 iOS 8 SDK 或更高版本来构建。请勿提交 Beta 版软件构建的 App。
- IOS 版本号大小比较
- 工具链无效。新 App 和 App 更新必须使用公共(正式)版 Xcode 6 或更高版本以及 iOS 8 SDK 或更高版本来构建。请勿提交 Beta 版软件构建的 App。
- ios app 版本更新
- iOS开发007 苹果appStore检查版本更新与从app里引导跳到appstore评论页面
- ios的app,有新版本时必须先更新。
- 苹果要求所有新app以及版本更新必须支持iOS 8 SDK和64-bit
- iOS app版本更新的加急审核
- ios APP初次安装以及版本更新后,判断是否需要显示引导页
- iOS版本更新的App提交审核发布流程
- App检测版本更新 iOS