Swift OS条件文は#availableだけじゃなかった。特定OS条件だけもできるoperatingSystemVersion
こんにちは、りーさんです。
今までOS条件で処理したい時に#availableを使って、OS15以上はこの処理、それ以下は、この処理みたいな感じでやっていました。
#availableだと、OS以下でしたいときにelseにしか処理が書けないといったデメリットがあると思っていて、そうするとOS以上には処理が特にないのに
#available iOS 15 elseといった形で書く必要があったかと思います。
ここで、発見したのがoperatingSystemVersionです。
使い方を説明したいと思います。
前提
現状の保証端末がOS15/16/17でOS15のみでバグが発生したので処理がしたい
#availableの場合
if #available(iOS 16, *) {
// iOS 16以上の処理
} else {
// iOS 15以下の処理
}
この書き方だと、以下が1文で書けないので使う際には、時と場合によります。
operatingSystemVersionの場合
import Foundation
let osVersion = ProcessInfo.processInfo.operatingSystemVersion
print("iOS version: \(osVersion.majorVersion).\(osVersion.minorVersion).\(osVersion.patchVersion)")
ログ
17.5.1
ProcessInfoを使うことでより詳細のバージョンを取得することができます。
メジャーバージョン; osVersion.majorVersion
マイナーバージョン: osVersion.minorVersion
パッチバージョン: osVersion.patchVersion
実際の条件使用例
import Foundation
// 細かくOS条件を設定できる
let osVersion = ProcessInfo.processInfo.operatingSystemVersion.majorVersion
let targetVersion = 15
if osVersion == targetVersion {
// iOS 15の処理
}
この条件文でメジャーバージョンだけで特定のOSの処理をしたり
メジャーマイナーパッチバージョンを含めた細かい条件を組めたりします。
以上で、OS条件文の紹介でした!
これで、細かく指定して処理できますね(^^)
この記事が気に入ったらサポートをしてみませんか?