👇
[Swift] #unavailableで特定バージョン未満のOSのみ処理する
Swift5.6では以前からあるif #available
に加えてif #unavailable
という構文が追加されています。
以下のように書くと、iOS15未満 (iOS14以下)のiOSでのみ処理することができます。
if #unavailable(iOS 15) {
// process
}
// 今まではこう書いていた
if #available(iOS 15, *) {} else {
// process
}
注意が必要なのが、#unavailable(iOS 15, *)
はエラーになることです。#available(iOS 15, *)
と書く癖でつい*
を入れてしまいますが、ここは記法が違います。
元々のプロポーザルでは#unavailable(iOS 15, *)
として提案されていましたが、2ndレビューで変更になったようです。
#unavailable(iOS 15)
と書いてあると「iOSのバージョンが15ではない(14でも16でもいい)」とも読めてしまうのであまり好きではないのですが、*
を書かない方がスッキリしているのはその通りだと思います。
Discussion