iOS @available 和 #available 的用法

  • 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 版本以上才可用。 
    另外一个特性参数: 星号( * ),表示包含了所有平台

    @available(iOS 9, *)
    // 是一种简写形式。全写形式是@available(iOS, introduced=9.0) 
    // introduced=9.0参数表示指定平台(iOS)从 9.0 开始引入该声明。    
    // 为什么可以采用简写形式呢?当只有introduced这样一种参数时,就可以简写成以上简写形式。
    

    @available还有其他一些参数可以使用,分别是:

    // deprecated = 版本号:从指定平台某个版本开始过期该声明 
    // obsoleted = 版本号:从指定平台某个版本开始废弃(注意弃用的区别,deprecated是还可以继续使用,只不过是不推荐了,obsoleted是调用就会编译错误)该声明 
    // message = 信息内容:给出一些附加信息 
    // unavailable : 指定平台上是无效的 
    // renamed = 新名字:重命名声明
    
    @available(iOS, introduced: 6.0, deprecated: 9.0, message:"")
    func myMethod() { }
    
    @available(iOS, introduced: 8.0, obsoleted: 10.0, message:"")
    func myMethod() { }
    
  • #available 
    #available 用在条件语句代码块中,判断不同的平台下,做不同的逻辑处理

    if #available(iOS 8, *) {
    
      // iOS 8 及其以上系统运行
    }
    
    guard #available(iOS 8, *) else { 
    
      return //iOS 8 以下系统就直接返回
    }
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值