※本記事は、旧ブログからの再掲です。
アプリのiOSバージョンの対象を広げたい場合には、
プログラムの中で未対応バージョンの考慮が必要となります。
iOSバージョン判定についての備忘録です。
iOSのバージョンは以下の方法で取得できます。
NSString *osVersion = [[UIDevice currentDevice] systemVersion];
iOSバージョンが文字列で返されるので、
– (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask
メソッドを使用して判定します。
optionsにNSNumericSearchを指定すると、数字は数値として比較されます。
返却される値は、
NSOrderedAscending :-1
NSOrderedSame :0
NSOrderedDescending :1
です。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// OSバージョン取得 NSString *osVersion = [[UIDevice currentDevice] systemVersion]; // iOS6.0より前のバージョン if ( [osVersion compare:@"6.0" options:NSNumericSearch] == NSOrderedAscending ) { } // iOS6.0以降のバージョン if ( [osVersion compare:@"6.0" options:NSNumericSearch] == NSOrderedSame || [osVersion compare:@"6.0" options:NSNumericSearch] == NSOrderedDescending ) { } |
<参考>
・[Appleドキュメント] SDK互換性ガイド
また、Foundationフレームワークの版に基づいて現在のシステムの版を調べる方法もあります。
[Appleドキュメント] iOS 7 UI 移行ガイドより
1 2 3 4 5 6 7 8 |
if ( floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1 ) { // iOS 6.1以前 } else { // iOS 7以降 } |