• 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 以下系统就直接返回
    }
    

iOS @available 和 #available 的用法相关推荐

  1. IOS开发 REST请求 ASIHTTPRequest用法

    ASIHTTPRequest类库简介和使用说明 官方网站: http://allseeing-i.com/ASIHTTPRequest/ .可以从上面下载到最新源码,以及获取到相关的资料. 使用iOS ...

  2. iOS中Block的基础用法

    原文链接:http://www.jianshu.com/p/17872da184fb 本文简介 本章不会对Block做过多的实现研究.只是讲解基本的用法.纯粹基础知识.结合实际项目怎么去做举例.Blo ...

  3. [IOS]hitTest的作用与用法【转】

    hitTest的作用:当在一个view上添加一个屏蔽罩,但又不影响对下面view的操作,也就是可以透过屏蔽罩对下面的view进行操作,这个函数就很好用了. hitTest的用法:将下面的函数添加到UI ...

  4. 【iOS】—— FMDB的基础用法

    一.基本介绍: 1.简介: 由于iOS中原生的 SQLite API 使用时非常不方便 ,于是就出现了一系列将 SQLite API 进行封装的库,例如FMDB.PlausibleDatabase.s ...

  5. ios Xib的几种用法[转]

    大多数Ios开发者都喜欢运用xib以及约束来布局,这样省去了大量初始化代码,但是xib的使用也是存在不少差异的: 一.xib的几个重要属性 xib的文件名 File's owner xib中的视图cl ...

  6. IOS笔记 #pragma mark的用法

    简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick { //.. ...

  7. iOS 关于.tbd与.dylib用法

    2019独角兽企业重金招聘Python工程师标准>>> Xcode7 升级后 在引入动态库的时候 .tbd 取代了 .dylib *.tbd内容是文本,需要经过编译生成*.dylib ...

  8. ios 标准 #pragma mark的用法

    简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick { //.. ...

  9. ios Quartz 各种绘制图形用法

    摘要: CoreGraphics的功能非常强大,可以绘制各种图形:今天学习一下怎么绘制简单的点线面,记录学习. 一.导入coreGraphics.framework 二.绘制图形 1.绘制矩形 // ...

  10. iOS 的TextView的常规用法

    一.新建一个textView //初始化 UITextView *textView = [[[UITextView alloc] init] autorelease]; //设置代理 需在interf ...

最新文章

  1. 复制构造函数 与 赋值函数 的区别
  2. wxWidgets:拖放概述
  3. 把dataframe删掉第一行_python – 从Pandas DataFrame中的所有行中减去第一行
  4. Oracle hang 之sqlplus -prelim使用方法
  5. c++实验4—项目6输出星号图
  6. AndroidStudio_安卓原生开发_sharedpreferences清空---Android原生开发工作笔记150
  7. Oracle提供的自治事务记录日志的方法
  8. 从函数式接口到lambda表达式
  9. python session过期_设置session过期时间
  10. 几个好用的资源下载网址
  11. UWB简介及其定位方法
  12. 2079 ACM 选课时间 背包 或 母函数
  13. HarmonyOS APP 开发入门
  14. Android MTK log分析
  15. 品牌公寓+电子合同,开拓年轻人租房市场
  16. 计算机连不了无线网络,如何解决电脑连接不上家里路由器的无线网
  17. 从零开始搭建仿抖音短视频APP-后端消息业务模块开发(2)-基础版完结篇
  18. Windows11 安装教程(ultraiso制作启动盘)
  19. win11安装后黑屏怎么解决
  20. 最全解释:Linux操作系统下的软件安装与管理详解(源码安装、rpm/dpkg、yum/apt-get安装)

热门文章

  1. 网站备案靠谱吗_网上出现的代理备案可信?为什么可以4-7天备案成功?
  2. syn包发送(拒绝攻击,但是有问题)
  3. Entrez检索实例 - NCBI
  4. 怎么样简单的进行dwg转pdf格式
  5. 树形结构的处理——组合模式(一)
  6. web项目下的WEB-INF、WebRoot
  7. JQuery slidebox实现图片轮播
  8. SD卡数据被误删除该怎么恢复?
  9. 计算机及应用课程实验,广东北达经贸专修学院主考专业助学班计算机及应用课程实验(二)(实践考核)课程含数据结构、数据库系统原...
  10. 淘宝天猫自动抢购插件下载-开发学习