iOS - Swift available 平台判断

简介: 前言Swift 语言中的 @available 和 #available,Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用 @available 声明这些类型的生命周期依赖于特定的平台和操作系统版本。

前言

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

1、@available

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

        @available(iOS 9, *)
        func myMethod() {
    
             // do something
         }
    • @available(iOS 9, *) 必须包含至少 2 个特性参数,其中 iOS 9 表示必须在 iOS 9 版本以上才可用。如果你部署的平台包括 iOS 8 , 在调用此方法后,编译器会报错。另外一个特性参数:星号(),表示包含了所有平台,目前有以下几个平台,一般来讲,如果没有特殊的情况,都使用 表示全平台。

          iOS
          iOSApplicationExtension
          OSX
          OSXApplicationExtension
          watchOS
          watchOSApplicationExtension
          tvOS
          tvOSApplicationExtension
    • @available(iOS 9, *) 是一种简写形式。全写形式是 @available(iOS, introduced=9.0)。introduced=9.0 参数表示指定平台(iOS)从 9.0 开始引入该声明。为什么可以采用简写形式呢?当只有 introduced 这样一种参数时,就可以简写成以上简写形式。同理:@available(iOS 8.0, OSX 10.10, *) 这样也是可以的。表示同时在多个平台上(iOS 8.0 及其以上;OSX 10.10 及其以上)的可用性。

    • 另外,@available 还有其他一些参数可以使用,分别是:

          deprecated=版本号  :从指定平台某个版本开始过期该声明
          obsoleted=版本号   :从指定平台某个版本开始废弃(注意弃用的区别,deprecated是还可以继续使用,只不过是不推荐了,
                              obsoleted是调用就会编译错误)该声明
          message=信息内容   :给出一些附加信息
          unavailable       :指定平台上是无效的
          renamed=新名字     :重命名声明
    • 以上参数具体可以参考官方文档

2、#available

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

        if #available(iOS 8, *) {
    
            // iOS 8 及其以上系统运行
        } else {
    
            // iOS 8 以下系统系统运行
        }
    
        guard #available(iOS 8, *) else {
    
            return // iOS 8 以下系统就直接返回
        }
目录
相关文章
|
云安全 安全 Cloud Native
Cisco Catalyst 8000 Series IOS XE 17.18.1a ED 发布 - 思科边缘平台系列系统软件
Cisco Catalyst 8000 Series IOS XE 17.18.1a ED - 思科边缘平台系列系统软件
35 0
|
12月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
276 1
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
10月前
|
IDE 开发工具 Android开发
移动应用开发之旅:探索Android和iOS平台
在这篇文章中,我们将深入探讨移动应用开发的两个主要平台——Android和iOS。我们将了解它们的操作系统、开发环境和工具,并通过代码示例展示如何在这两个平台上创建一个简单的“Hello World”应用。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧,帮助你更好地理解和掌握移动应用开发。
241 17
|
11月前
|
安全 数据处理 Swift
深入探索iOS开发中的Swift语言特性
本文旨在为开发者提供对Swift语言在iOS平台开发的深度理解,涵盖从基础语法到高级特性的全面分析。通过具体案例和代码示例,揭示Swift如何简化编程过程、提高代码效率,并促进iOS应用的创新。文章不仅适合初学者作为入门指南,也适合有经验的开发者深化对Swift语言的认识。
243 9
|
11月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
266 2
|
11月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
244 2
|
11月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
203 1
|
12月前
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
168 5
|
11月前
|
安全 API Swift
探索iOS开发中的Swift语言之美
【10月更文挑战第23天】在数字时代的浪潮中,iOS开发如同一艘航船,而Swift语言则是推动这艘船前进的风帆。本文将带你领略Swift的独特魅力,从语法到设计哲学,再到实际应用案例,我们将一步步深入这个现代编程语言的世界。你将发现,Swift不仅仅是一种编程语言,它是苹果生态系统中的一个创新工具,它让iOS开发变得更加高效、安全和有趣。让我们一起启航,探索Swift的奥秘,感受编程的乐趣。

热门文章

最新文章

相关课程

更多