iOS

iOSのバージョン判定をする方法

More than 1 year has passed since last update.

いつも忘れてしまうので、防備録として。

iOSのバージョン判定するには以下の方法で行う。


Objective-C

if ( floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max )

{
// iOS10以降の場合
} else {
// iOS9以前の場合
}


Swift

if floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max {

// iOS10以降の場合
} else {
// iOS9以前の場合
}

<追記>

なお、Swiftだとこういう書き方もできるとコメントをいただきました。

こちらの方がかなり直感的ですね。


Swift

if #available(iOS 10.0, *) {

// iOS10以降の場合
} else {
// iOS9以前の場合
}

iOSのバージョンによって異なるデザイン(iOS7以前)やiOS10から変わったウィジェットの背景色などを調整したりする際にこの判定処理が使えます。

以下の方法でもiOSのバージョン判定ができますが、直接値が書かれていたりするので、上記の方法が個人的には好きです。


Objective-C

float iOSVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

if (iOSVersion > 9.9f) {
// iOS10以降の場合
} else {
// iOS9以前の場合
}

参考:iOS 7 UI Transition Guide

<追記>

コメントでいただいたのだが、こんな方法でも判定ができるとのこと。

判定方法はいろいろとあるようですね。

iOS のバージョンを簡単にマイナーバージョン等を加味して判定する