iOS 7.0になり今まで以上にiOS 7.0までのレイアウトとiOS 7.0以上のレイアウトを使い分ける必要が出てきました。
この記事では、アプリが実行されているiOSのバージョンがiOS 7.0以上であるかどうか判定する方法をご紹介します。
iOSのバージョンを取得する
iOSのバージョンを取得するには、UIDeviceクラスのsystemVersionプロパティ
を使用します。
// iOSのバージョンを取得する
NSString* sysVersion = [[UIDevice currentDevice] systemVersion];
他にもiOSでのデバイス情報(端末情報)を取得するには「端末情報(デバイス情報)を取得する - iOSアプリ開発の逆引き辞典」にて詳しく記載しております。合わせてご参考ください。
iOSのバージョンを比較する
例えば、iOS 7.0以上では新しく用意したレイアウトを適用させたい場合やサポートしていないAPIを使っているという場合、以下のような方法によって特定のバージョンより新しいiOSかどうかを判定させることができます。
まずは下記のisSupportメソッドを作成します。このメソッドは現在のiOSバージョンが「7.0」の時、「7.0」未満のバージョンを渡すと「NO」を返します。
- (BOOL)isSupport:(NSString*)reqSystemVersion { // iOSのバージョンを取得する NSString* sysVersion = [[UIDevice currentDevice] systemVersion]; BOOL ret = NO; if ([sysVersion compare:reqSystemVersion options:NSNumericSearch] == NSOrderedAscending) { // iOSのバージョンが、指定されたバージョン未満である ret = NO; } else { // iOSのバージョンが、指定されたバージョン以上である ret = YES; } return ret; }
上記のisSupportメソッドを使った例をご紹介します。アプリを実行しているiOSのバージョンは7.0
とします。
BOOL isSupport1 = [self isSupport:@"6.0"]; // 結果は「NO」 BOOL isSupport2 = [self isSupport:@"7.0"]; // 結果は「YES」 BOOL isSupport3 = [self isSupport:@"7.0.1"]; // 結果は「YES」