いつも忘れてしまうので、防備録として。
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以前の場合
}
<追記>
コメントでいただいたのだが、こんな方法でも判定ができるとのこと。
判定方法はいろいろとあるようですね。