iOS @available 和 #available 的用法

简介: 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 以下系统就直接返回
}
相关文章
|
6月前
|
JSON 安全 数据安全/隐私保护
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
100 0
|
11月前
|
JSON 安全 数据安全/隐私保护
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
iOS Class Guard是一个用于OC类、协议、属性和方法名混淆的命令行工具。它是class-dump的扩展。这个工具会生成一个symbol table,这个table在编译期间会包含进工程中。iOS-Class-Guard能有效的隐藏绝大多数的类、协议、方法、属性和 实例变量 名。iOS-Class-Guard不是应用安全的最终解决方案,但是它绝对能让攻击者更难读懂你的程序。iOS-Class-Guard会加大代码分析和runtime检查的难度,这个工具可以认为是一个简单基础的混淆方法。由于OC的架构决定了iOS应用程序的剖析相当简单,check out一下链接就知晓了:
|
iOS开发
(六)IOS手势和触摸的用法
(六)IOS手势和触摸的用法
227 0
|
程序员 API iOS开发
iOS开发:个人对于textView基础用法的总结(其一)
从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。
335 0
|
前端开发 小程序 数据处理
iOS上传图片视图的封装:用法 【下篇】
iOS上传图片视图的封装:用法 【下篇】
249 0
iOS上传图片视图的封装:用法 【下篇】
|
iOS开发
iOS 中block结构的简单用法(二)
iOS 中block结构的简单用法
148 0
iOS 中block结构的简单用法(二)
|
编译器 API iOS开发
iOS 中block结构的简单用法(一)
iOS 中block结构的简单用法
130 0
iOS 中block结构的简单用法(一)
|
iOS开发
iOS中UIImageView用法总结
iOS中UIImageView用法总结
129 0
|
iOS开发 开发者
iOS UIPageControl(分页控制器) 用法总结
iOS UIPageControl(分页控制器) 用法总结
677 0
|
iOS开发
iOS UIProgressView控件用法
iOS UIProgressView控件用法
236 0