ios 判断数字大小_iOS 比较版本号大小的方法

该博客讨论了如何在iOS应用中正确比较版本号,以确定是否需要更新。作者指出,简单的字符串处理方法可能无法应对所有版本号格式,如1.0.11与1.1.0的情况。为了解决这个问题,提出了一个解决方案,即按点分隔的三个部分分别进行比较,优先级为:主要版本>次要版本>修订版本。通过这种方式,可以确保更准确地判断版本号的大小关系,从而决定是否提示用户更新应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比较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的下一个版本.

解决方法:

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

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

-(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(@"有新版本");returnYES;

}else if(a

}returnNO;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值