NSComparisonResultを使うと簡単に比較できる
やり方
Swift
let compareVersion: String = "1.1.0"
let currentVersion: String = NSBundle.mainBundle().infoDictionary?["CFBundleShortVersionString"] as! String // 1.0.0
if compareVersion.compare(currentVersion) == .OrderedAscending {
print("現在のバージョンより下です")
} else {
print("現在のバージョンより上です") // この場合はこちらが出力される
}
Objective-C
NSString* compareVersion = @"1.1.0";
NSString* currentVersion = [[NSBundle mainBundle] infoDictionary][@"CFBundleShortVersionString"]; // 1.0.0
if ([compareVersion compare:currentVersion options:NSNumericSearch] == NSOrderedAscending) {
NSLog(@"現在のバージョンより下です");
} else {
NSLog(@"現在のバージョンより上です"); // この場合はこちらが出力される
}
注意
バージョンコードが同じとき、.
で区切る数で結果が変わるので気をつける
例えば、currentVersion
が1.0.0
のとき、
比較するバージョンが1.0
の場合は、currentVersion
より下
比較するバージョンが1.0.0
の場合は、currentVersion
より上、
比較するバージョンが1.0.0.0
の場合は、currentVersion
より上になる