Swift は、API の可用性チェックをビルトインでサポートしており、デプロイ対象で利用できない API を誤って利用してしまうことがないようにできます。

コンパイラは、コードで利用しているすべての API が、プロジェクトで指定されたデプロイ対象で利用可能であるかを検証するために、SDK にある可用性の情報を利用します。Swift は、利用可能でない API を利用しようとした場合、コンパイル時にエラーを報告します。

実行時に利用したい API が利用可能かどうかによる条件付きでコードブロックを実行するためには、if または guard 文で可用性条件を使用します。コンパイラは、コードブロックの API が利用可能であるかを検証する際に、可用性条件からの情報を利用します。

if #available(iOS 9, OSX 10.10, *) {
    // iOS の iOS 9 API を使用、および OS X の OS X v10.10 API を利用
} else {
    // それより前の iOS および OS X の API にフォールバック
}

この例では、iOS では iOS 9 以降でのみ、OS X では OS X v10.10 以降でのみ、if の本体が実行されるよう可用性条件を指定しています。最後の引数 * は、他のプラットフォーム用に必要で指定していて、ターゲットに指定した最小限度以上のデプロイ対象で if の本体が実行されます。

一般的な形式では、可用性条件はプラットフォーム名とバージョンのリストになります。プラットフォーム名には iOSOSXwatchOS を使用します。iOS 8 のようにメジャーバージョン番号を指定することに加えて、iOS 8.3 や OS X v10.10.3 のようにマイナーバージョンを指定することができます。

if #available(platform name version, ..., *) {
    statements to execute if the APIs are available
} else {
    fallback statements to execute if the APIs are unavailable
}

Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.