美文网首页
swift @available与#available

swift @available与#available

作者: 程守斌 | 来源:发表于2017-12-01 11:39 被阅读1534次

Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用@available声明这些类型的生命周期依赖于特定的平台和操作系统版本。而#available用在判断语句中(if, guard, while等),在不同的平台上做不同的逻辑

@available

用法
@available放在函数(方法),类或者协议前面。表明这些类型适用的平台和操作系统。看下面一个例子:

@available(iOS 9, *)
func myMethod() {
    // do something
}

@available(iOS 9, )必须包含至少2个特性参数,其中iOS 9表示必须在 iOS 9 版本以上才可用。如果你部署的平台包括 iOS 8 , 在调用此方法后,编译器会报错。
另外一个特性参数:星号(
),表示包含了所有平台,目前有以下几个平台:
iOS
iOSApplicationExtension
OSX
OSXApplicationExtension
watchOS
watchOSApplicationExtension
tvOS
tvOSApplicationExtension
一般来讲,如果没有特殊的情况,都使用*表示全平台。
@available(iOS 9, *)是一种简写形式。全写形式是@available(iOS, introduced=9.0)。introduced=9.0参数表示指定平台(iOS)从 9.0 开始引入该声明。为什么可以采用简写形式呢?当只有introduced这样一种参数时,就可以简写成以上简写形式。同理:@available(iOS 8.0, OSX 10.10, *) 这样也是可以的。表示同时在多个平台上(iOS 8.0 及其以上;OSX 10.10及其以上)的可用性。
另外,@available还有其他一些参数可以使用,分别是:
deprecated=版本号:从指定平台某个版本开始过期该声明
obsoleted=版本号:从指定平台某个版本开始废弃(注意弃用的区别,deprecated是还可以继续使用,只不过是不推荐了,obsoleted是调用就会编译错误)该声明
message=信息内容:给出一些附加信息
unavailable:指定平台上是无效的
renamed=新名字:重命名声明

@available(iOS, introduced: 6.0, deprecated: 8.0, message: "Manually forward viewWillTransitionToSize:withTransitionCoordinator: if necessary")
open func shouldAutomaticallyForwardRotationMethods() -> Bool

相关文章

  • swift @available与#available

    Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用@available声明这些类型的生命周...

  • swift @available 和 #available

    Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用@available声明这些类型的生命周...

  • Swift:API 可用性检查

    Swift 提供了 @available、#available 这两个 Attribute 用于函数的可用版本定义...

  • swift 使用@available

    官方文档:https://docs.swift.org/swift-book/ReferenceManual/At...

  • Swift 5.6 新特性

    #unavailable Swift 5.6 前 #available 表示可用,Swift 5.6 之后增加了#...

  • @available 和 #available

    Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用@available声明这些类型的生命周...

  • Swift-常见关键字

    一、#available和@available @available是编译时期作用,#available是运行时起...

  • iOS 15 (xcode 13) 更新后出现的bug

    UITableView sectionHeader下移22像素? swift if#available(iOS15...

  • swift 中的 @available

    @available: 可用来标识计算属性、函数、类、协议、结构体、枚举等类型的生命周期。(依赖于特定的平台版本 ...

  • @available

    @available表明适用平台和系统@available(iOS 10.0,*)表示适用iOS10.0及以后版本...

网友评论

      本文标题:swift @available与#available

      本文链接:https://www.haomeiwen.com/subject/towibxtx.html