swift 2.0中@available和#available之间的区别

Ank*_*oel 17 swift

Swift 2.0允许使用@availableor 进行可用性检查#available,但使用@available和有#available什么区别?

Aao*_*oIi 22

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

if #available(iOS 9, *) {
    // use UIStackView for example
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

但是,如果整个方法都是不受限制的,或者甚至整个课程呢?Swift 2也使用该@available属性覆盖了这些场景.

@available(iOS 9, *)
func useStackView() {
    // use UIStackView for example
}
Run Code Online (Sandbox Code Playgroud)

更多细节:https://www.hackingwithswift.com/new-syntax-swift-2-availability-checking

  • 简而言之,`#available()`是一个运行时检查,返回一个布尔值,`@available()`是一种生成编译时警告/错误的方法,如果用户的目标低于你用它标记的目标,他们没有进行`#available()`检查,是吗? (12认同)