🥑

【Swift】iOSのバージョンごとに処理を分けたい時

2021/11/25に公開

#availableで条件分岐できます。

環境

  • Xcode13.0
  • Swift5.5

if文で使用


if #available(iOS 15.0, *) {
    /// iOS 15.0以降の時はここを通る
} else {
    /// iOS 15.0より前の時はここを通る
}

guard文で使用


guard #available(iOS 15.0, *) else {
    /// iOS 15.0より前の時はここを通る
}
/// iOS 15.0以降の時はここを通る

example1.swift

func checkVersion() {
    if #available(iOS 15.0, *) {
        print("iOS 15.0より以降のバージョンです。")
    } else {
        print("iOS 15.0より前のバージョンです。")
    }
}

func checkVersion() {
    guard #available(iOS 15.0, *) else {
        print("iOS 15.0より前のバージョンです。")
    }
    print("iOS 15.0より以降のバージョンです。")    
}

SwiftUIでの例

ContentView.swift
struct ContentView: View {
    var body: some View {
        VStack {
	    if #available(iOS 15.0, *) {
	        Text("iOS 15.0以降です。")
	    } else {
	        Text("iOS 15.0より前です。")
	    }
        }
    }
}

Discussion