[Swift]检查API可用性

Swift内置支持检查API可用性,这可确保您不会意外使用在给定部署目标上不可用的API。

编译器使用SDK中的可用性信息来验证代码中使用的所有API是否在项目指定的部署目标上可用。如果您尝试使用不可用的API,Swift会在编译时报告错误。

您可以在or 语句中使用可用性条件来有条件地执行代码块,具体取决于您要使用的API是否在运行时可用。当编译器验证该代码块中的API可用时,编译器将使用可用性条件中的信息。ifguard

1 if #available(iOS 10, macOS 10.12, *) {
2     // Use iOS 10 APIs on iOS, and use macOS 10.12 APIs on macOS
3 } else {
4     // Fall back to earlier iOS and macOS APIs
5 }

上面的可用性条件指定在iOS中,if语句的主体仅在iOS 10及更高版本中执行; 在macOS中,仅在macOS 10.12及更高版本中。最后一个参数*是必需的,并指定在任何其他平台上,在if目标指定的最小部署目标上执行的主体。

在一般形式中,可用性条件采用平台名称和版本的列表。您可以使用平台的名称,如iOSmacOSwatchOS,和tvOS-对于完整列表,请参阅声明属性。除了指定主要版本号(如iOS 8或macOS 10.10)之外,您还可以指定次要版本号,如iOS 11.2.6和macOS 10.13.3。

1 if #available(platform name version, ..., *) {
2     statements to execute if the APIs are available
3 } else {
4     fallback statements to execute if the APIs are unavailable
5 }

原文地址:https://www.cnblogs.com/strengthen/p/9946011.html

时间: 2024-11-13 06:57:03

[Swift]检查API可用性的相关文章

在Swift中检查API的可用性

http://www.cocoachina.com/swift/20150901/13283.html 本文由CocoaChina译者ALEX吴浩文翻译自Use Your Loaf博客 原文:Checking API Availability With Swift Swift 2改进了检查API可用性的方法,使其更加容易.安全. 回顾Objective-C的方法 在看Swift之前,让我们简要回顾一下我们之前用Objective-C检查SDK可用性的方法. 检查类和框架的可用性 iOS 9作为一

JcJc错别字纠错检查API说明

JcJc错别字纠错检查1.0发布在即,先发布最新版本的API说明文档:未来版本的改动,以Github为准, 项目地址:https://github.com/textproofreading/cuobiezi_http_api/ JcJc 错别字纠错检查 API 共支持以下三种方式:1. 全文返回, 对错别字加提示标签2. 只返回带错别字的句子, 勘误表格式3. 只返回带错别字的字,以及在文中的位置 JcJc错别字纠错检查 API 采用 HTTP 协议,HTTP 接口规范如下 : http 请求地

Swift反射API及其用法

猛戳查看最终版@SwiftGG 尽管 Swift 一直在强调强类型.编译时安全和静态调度,但它的标准库仍然提供了反射机制.可能你已经在很多博客文章或者类似Tuples.Midi Packets 和 Core Data 的项目中见过它.也许你刚好对在项目中使用反射机制感兴趣,或者你想更好滴了解反射可以应用的领域,那这篇文章就正是你需要的.文章的内容是基于我在德国法兰克福 Macoun会议上的一次演讲,它对 Swift 的反射 API 做了一个概述. API 概述 理解这个主题最好的方式就是看API

Python 检查网站可用性

#!/usr/bin/env python # coding=utf-8 import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('www.sina.com.cn',80)) s.send('GET / HTTP/1.1\r\nHost:www.sina.com.cn\r\nConnection:close\r\n\r\n') buffer = [] while True:     d=s.rec

Swift控制语句

前言 Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环.还有基于特定条件选择执行不同代码分支的if.guard和switch语句,还有控制流程跳转到其他代码的break和continue语句. Swift增加了for-in循环,用来更简单地遍历数组.字典.区间.字符串和其他序列类型. Swift的switch语句比C语言中更加强大.在C语言中,如果某个case不小心漏写了break,这个case就会贯穿至下一个case,而Swift无需写break,所以不会

Swift学习笔记 - 教程学习四 控制流(Control Flow)

4 控制流(Control Flow) 4.1 For-In Loops 用for-in循环遍历一个序列,如一组连续数.数组元素.字符串中字符等. for index in 1...5 { print("\(index) times 5 is \(index * 5)") } // 1 times 5 is 5 // 2 times 5 is 10 // 3 times 5 is 15 // 4 times 5 is 20 // 5 times 5 is 25 index是一个在每次循

Swift 学习- 06 -- 控制流

// 控制流 // swift 提供了多种控制流结构,包括可以多次执行的 while 循环,基于特定条件选择执行不同分支的 if, guard 和 switch 语句,还有控制流程跳转到其它代码位置的 break 和 continue 语句 // swift 还提供了了 for-in 循环,用来更简单地遍历数组(array), 字典(dictionary), 区间(range), 字符串(String) 和其它序列类型 // swift 的switch 语句比C语言中更加强大, 在C语言中,如果

进击的雨燕---------------控制流

Swift 提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if.guard和switch语句,还有控制流程跳转到其他代码的break和continue语句. 除了 C 语言里面传统的 for 循环,Swift 还增加了for-in循环,用来更简单地遍历数组(array),字典(dictionary),区间(range),字符串(string)和其他序列类型. Swift 的switch语句比 C 语言中更加强大.在 C 语言中

在swift中检查PAI的可用性

回顾Objective-C的方法 在看Swift之前,让我们简要回顾一下我们之前用Objective-C检查SDK可用性的方法. 检查类和框架的可用性 iOS 9作为一个重要的版本,引进了许多新的框架.但如果你部署版本低于iOS 9,你需要弱连接(weak link)这些新框架,然后在运行时检查其类的可用性.例如:如果我们想在iOS 9中使用新的联系人框架(Contacts framework),而在iOS 8中使用旧的通讯录框架(AddressBook framework): 1 2 3 4