欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2019-01-28: #available && @available

程序员文章站 2024-02-23 10:04:22
...

一:#available

1: 主要用在条件语句判断当中、判断不同的手机系统、平台

if #available(iOS 8.0, *) {
       print("从8.0系统开始...")
 }
guard #available(iOS 8.0, *) else {
      print("低于8.0系统的版本...直接返回")
      return
}

二:@availabel

1: 主要用在函数方法、类、协议等前面使用,表明适用的平台类型和手机系统。

@available(iOS 9, *)
        func method1() {}
/// 表示该方法只有在iOS 9.0以上的系统版本才会执行

2: @available(iOS 9, *)
iOS 9.0: 表示从9.0手机系统开始
“ * ”:表示支持所有平台

3: @available(iOS 9, *) 全称为:@available(iOS, introduced=9.0)

4: keyword:
deprecated: 从某个版本开始过期该声明
obsoleted: 从某个版本开始废弃(跟deprecated的区别就是:deprecated是还可以使用、只是不推荐;但是obsoleted是调用就编译报错该声明)
message: 附加信息
unavailable:指定平台是无效的
renamed:新名字:重新命名声明

// 这个方法从6.0开始引入声明,过期该声明为9.0版本
@available(iOS, introduced: 6.0, deprecated: 9.0, message:"")
func myMethod() { }

// 这个方法从8.0开始引入声明,过期该声明为10.0版本
@available(iOS, introduced: 8.0, obsoleted: 10.0, message:"")
func myMethod() { }

三:获取系统版本

/// 字符串类型?
let systenVersion = UIDevice.current.systemVersion
print("systenVersion=\(systenVersion)")

四:Swift版本不同版本区间的判断?

if #available(iOS 8.0, *) {
      print("8.0 以上")
      if #available(iOS 10.0, *) {
            print("10.0以上")
      }else {
            print("10.0以下")
      }
}else {
        print("8.0 以下")
}

转载于:https://www.jianshu.com/p/236c763d0f61