swift 2.0中@available和#available之间的差异

swift 2.0中@available和#available之间的差异,swift,Swift,Swift 2.0允许通过使用@available或#available进行可用性检查,但是使用@available和#available之间有什么区别呢?您可以使用if#available以小块方式运行特定于版本的代码,如下所示: if #available(iOS 9, *) { // use UIStackView for example } else { // do something else } 但是,如果整个方法是禁止的,或者甚至是整个类呢?Swift 2使用@a

Swift 2.0允许通过使用
@available
#available
进行可用性检查,但是使用
@available
#available
之间有什么区别呢?

您可以使用if
#available
以小块方式运行特定于版本的代码,如下所示:

if #available(iOS 9, *) {
    // use UIStackView for example
} else {
    // do something else
}
但是,如果整个方法是禁止的,或者甚至是整个类呢?Swift 2使用
@available
属性也涵盖了这些场景

@available(iOS 9, *)
func useStackView() {
    // use UIStackView for example
}
更多详细信息:

简而言之,
#available()
是一种运行时检查,返回布尔值;
@available()
是一种生成编译时警告/错误的方法,如果用户的目标低于您标记的值,并且他们没有使
#available()
检查,呃?@nhgrif“#available()返回布尔值”。注意:我可以做:if#available(…){…},但我不能做像:if!(#可用(…){…}