更新後版本比較鑑於nsstring有提供compare的功能,但是會對於
[@"10.1.1" compare:@"2.1.1"]
會出現問題,所以提供以下方法進行比較:
nsstring+versioncompare.**件
#import
typedef enum : nsuinteger compareresulttype;
@inte***ce nsstring (versioncompare)
#pragma mark - 與老版本比較
- (compareresulttype)versioncompare:(nsstring *)oldversion;
@end
複製**
nsstring+versioncompare.m檔案
#import "nsstring+versioncompare.h"
@implementation nsstring (versioncompare)
#pragma mark - 與老版本比較
- (compareresulttype)versioncompare:(nsstring *)oldversion else
if ([currentversionarray[i] intvalue] > [oldversionarray[i] intvalue]) else
}//前面的都相等, (1.1.1 > 1.1)
return currentversionlength < oldversionlength ? smallerresulttype : biggerresulttype;
} else else
if ([currentversionarray[i] intvalue] > [oldversionarray[i] intvalue]) else }}
return equalresulttype;
}@end
複製**
使用方法:
//引入標頭檔案
#import "nsstring+versioncompare.h"
//使用
[@"1.1" versioncompare:@"1.1.1"]; //小
[@"10.2.0" versioncompare:@"2.2.0"]; //大
[@"1.2.0" versioncompare:@"1.2.1"]; //小
[@"1.1" versioncompare:@"1.1"]; //等
複製**
新版本廣告展示判斷
//1.獲取快取的版本號
nsstring *softwareversion = [[nsuserdefaults standarduserdefaults] objectforkey:ksoftwareversion];
//2.獲取當前的版本號
nsstring *currentversion = [[nsbundle mainbundle] objectforinfodictionarykey:@"cfbundleshortversionstring"];
if (![currentversion isequaltostring:softwareversion])
複製**
補充:
1.獲取系統版本號:
nsstring *version = [[nsbundle mainbundle] objectforinfodictionarykey:@"cfbundleshortversionstring"];
複製**
複製** iOS 版本更新
通常的做法是在自己的伺服器上記錄最新版本號,從ios客戶端請求,與本地版本號比較,不同則提示更新。這種做法簡單,缺點是需要單獨的伺服器支援。html view plain copy nsstring version nsurl urlid your versionrequest asiformdat...
ios版本更新
在我們使用應用時,一開啟應用,如果此應用有新的版本,常常能在應用中給出提示,是否要更新此應用。所以,我們就來看看,版本更新是如何實現的。蘋果給了我們乙個介面,能根據應用id請求一些關於應用的資訊。我們可以根據返回的資訊,來判斷版本是否和應用的版本一致,如果不一致,那麼就出現新的版本了。這時,就需要向...
iOS版本比較方法
之前一直把版本號轉換為floatvalue,但是最近在專案中又出現了float的問題,主要是 nsstring表示為 17.30 轉換為floatvalue 值為17.299999,然後做了一些放大處理,導致不精確,就是精度少了1 所以都不敢在系統版本比較的過程中把值強制轉換為floatvalue了...