状況に応じて #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) {
...
}
}
これはちょっとうれしかった。