Swfit5でアプリバージョン(文字列)の比較方法【Swift/Objective-C】

今回はアプリのバージョンチェックなどに使える、バージョン(文字列)の比較方法をご紹介します。

SWift、Objective-Cの両方のサンプルコードは以下になります。

Swift5

// バージョンの取得方法
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString")
// ビルドバージョンの取得方法
let build = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion")

// バージョンの比較方法
let version1 = "1.1.1";
let version2 = "1.2.1";
if version1.compare(version2, options: .numeric) == .orderedAscending {
    print("version1のほうが小さい");
}
else {
    print("version2のほうが大きい");
}

compareにオプションをつけて、文字列の昇順降順でバージョンを比較しています。

Objective-C

// バージョンの取得方法
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];
// ビルドバージョンの取得方法
NSString *build = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

// バージョンの比較方法
NSString *version1 = @"1.1.1";
NSString *version2 = @"1.2.1";
if ([version1 compare:version2 options:NSNumericSearch] == NSOrderedAscending) {
    NSLog(@"version1のほうが小さい");
}
else {
    NSLog(@"version2のほうが大きい");
}