available

2018-04-18  本文已影响84人  流年易逝_李

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

一、@available 

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

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

@available(iOS9, *)

func myMethod() {

//dosomething

}

@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 

#available 用在条件语句代码块中,判断不同的平台下,做不同的逻辑处理

if #available(iOS 8, *) {

// iOS 8 及其以上系统运行

}

guard #available(iOS 8, *) else {

return//iOS 8 以下系统就直接返回

}

摘自:https://blog.csdn.net/dream9393/article/details/78195485

上一篇下一篇

猜你喜欢

热点阅读