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 以下系统就直接返回 }
iOS @available 和 #available 的用法相关推荐
- IOS开发 REST请求 ASIHTTPRequest用法
ASIHTTPRequest类库简介和使用说明 官方网站: http://allseeing-i.com/ASIHTTPRequest/ .可以从上面下载到最新源码,以及获取到相关的资料. 使用iOS ...
- iOS中Block的基础用法
原文链接:http://www.jianshu.com/p/17872da184fb 本文简介 本章不会对Block做过多的实现研究.只是讲解基本的用法.纯粹基础知识.结合实际项目怎么去做举例.Blo ...
- [IOS]hitTest的作用与用法【转】
hitTest的作用:当在一个view上添加一个屏蔽罩,但又不影响对下面view的操作,也就是可以透过屏蔽罩对下面的view进行操作,这个函数就很好用了. hitTest的用法:将下面的函数添加到UI ...
- 【iOS】—— FMDB的基础用法
一.基本介绍: 1.简介: 由于iOS中原生的 SQLite API 使用时非常不方便 ,于是就出现了一系列将 SQLite API 进行封装的库,例如FMDB.PlausibleDatabase.s ...
- ios Xib的几种用法[转]
大多数Ios开发者都喜欢运用xib以及约束来布局,这样省去了大量初始化代码,但是xib的使用也是存在不少差异的: 一.xib的几个重要属性 xib的文件名 File's owner xib中的视图cl ...
- IOS笔记 #pragma mark的用法
简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick { //.. ...
- iOS 关于.tbd与.dylib用法
2019独角兽企业重金招聘Python工程师标准>>> Xcode7 升级后 在引入动态库的时候 .tbd 取代了 .dylib *.tbd内容是文本,需要经过编译生成*.dylib ...
- ios 标准 #pragma mark的用法
简单的来说就是为了方便查找和导航代码用的. 下面举例如何快速的定位到我已经标识过的代码. #pragma mark 播放节拍器 - (void) Run:(NSNumber *)tick { //.. ...
- ios Quartz 各种绘制图形用法
摘要: CoreGraphics的功能非常强大,可以绘制各种图形:今天学习一下怎么绘制简单的点线面,记录学习. 一.导入coreGraphics.framework 二.绘制图形 1.绘制矩形 // ...
- iOS 的TextView的常规用法
一.新建一个textView //初始化 UITextView *textView = [[[UITextView alloc] init] autorelease]; //设置代理 需在interf ...
最新文章
- 复制构造函数 与 赋值函数 的区别
- wxWidgets:拖放概述
- 把dataframe删掉第一行_python – 从Pandas DataFrame中的所有行中减去第一行
- Oracle hang 之sqlplus -prelim使用方法
- c++实验4—项目6输出星号图
- AndroidStudio_安卓原生开发_sharedpreferences清空---Android原生开发工作笔记150
- Oracle提供的自治事务记录日志的方法
- 从函数式接口到lambda表达式
- python session过期_设置session过期时间
- 几个好用的资源下载网址
- UWB简介及其定位方法
- 2079 ACM 选课时间 背包 或 母函数
- HarmonyOS APP 开发入门
- Android MTK log分析
- 品牌公寓+电子合同,开拓年轻人租房市场
- 计算机连不了无线网络,如何解决电脑连接不上家里路由器的无线网
- 从零开始搭建仿抖音短视频APP-后端消息业务模块开发(2)-基础版完结篇
- Windows11 安装教程(ultraiso制作启动盘)
- win11安装后黑屏怎么解决
- 最全解释:Linux操作系统下的软件安装与管理详解(源码安装、rpm/dpkg、yum/apt-get安装)