kitoko552.memo

kitoko552のメモ

Swift2.0でavailableを使ってバージョンチェックをする

Swift2.0からavailableを使ってバージョンチェックができるようになりました。

if #available(iOS 8.0, *) {
    // iOS8.0以上の場合のみの処理
}

構文は上のように、#abailable(platform version, ...)となります。
末尾の*は、「他のプラットフォームに関しては特に指定しない」ということを示します。
つまり上の例では、iOS以外のプラットフォーム(watchOS, OSXなど)に関しては特に指定しないということになります。

また、条件指定後の処理が大きい場合は、if文の中身が大きくなってしまいかっこ悪いのでguard文を使うといいでしょう。

guard #available(iOS 8.0, *) else {
    return
}

// iOS8.0以上の場合のみの処理

逆に自作のメソッドやクラスを指定したプラットフォーム・バージョン以外で使われないようにするためには@available(platform version, ...)を使います。

// iOS7.0以降からしか呼べない
@available(iOS 7.0, *)
funk doSomething() {
    
}

このように@availableを使うと、このメソッドを呼ぶ際には#availableの条件式が必要になります。

if #available(iOS 7.0, *) {
    doSomething()
}

参考記事 www.hackingwithswift.com