MacOSX
Swift3.0
Xcode8

【Swift3】要求バージョンの指定

swiftではバージョンに依存する構文があるのでコードにより判定し, バージョンに見合った処理を書くことが推奨されている


判定方法

コード内で判定する

if #available(引数) { 
/*コード*/
}else{
/*コード*/
}
例

// iOS 10以降を要求
if #available(iOS 10, *) { 
/*コード*/
}else{
/*コード*/
}


Attributeで指定する

@available(引数) 
func f() {

}
例

// iOS 10以降を要求
@available(iOS 10, *) 
func f() {

}


引数内の記載について

最初の引数はプラットフォーム名


プラットフォーム名

・iOS
・iOSApplicationExtension
・OSX
・OSXApplicationExtension
・watchOS
・watchOSApplicationExtension
・tvOS
・tvOSApplicationExtension
・* (全プラットホーム)

その他

・利用不可 : unavailable
・導入 : introduced=version number
・非推奨 : deprecated=version number
・廃止 : obsoleted=version number
・メッセージ : message=""
・名称変更 : renamed="新しい名前"

などもある




参考

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Attributes.html

http://dev.classmethod.jp/smartphone/iphone/swift2_available/