Posted at

Swift APIのavailabilityチェックはextensionでもできた〜

More than 3 years have passed since last update.

状況に応じて #available@available を使うことで、OSのバージョンによって処理を分けることができます。が、今日、コードを書いていてこれがextension単位でも効くことを知りました。


ドキュメントにも載ってる頻出の使い方

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

@available(iOS 8.0, OSX 10.10, *)

func useShinyNewFeature() {
// ...
}


extensionでも使える

// MARK:-

// MARK: SHORTCUT
@available(iOS 9.0, *)
extension AppDelegate {
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
...
}
}

これはちょっとうれしかった。


参考