iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0

實作了那麼多天,也看了不少 code,一直看到 available 這關鍵字在 source code 中出現,本篇就來談談這個關鍵字。
Swift 2.0 之後提供了這個關鍵字用來判斷所宣告之變數、function、或是判斷式其支援之作業系統版本及平台的支援程度。可分成兩種方式 @available#available

  1. @available : 用在所宣告的參數、函式其可使用的平台及作業系統版本。使用方法如下:
@available(iOS 9, *)
func myMethod() {
// do something
}

@available(iOS 9, *)的完整格式是@available(iOS, introduced=9.0)。星號表示包含了所有作業系統,目前有以下幾種:

  • iOS
  • iOSApplicationExtension
  • OSX
  • OSXApplicationExtension
  • watchOS
  • watchOSApplicationExtension
  • tvOS
  • tvOSApplicationExtension

範例:

@available(iOS 8.0, OSX 10.10, *) 

表示可以在 iOS 8.0 及其以上、OSX 10.10 及其以上的平台上使用。

  1. #available : 用在判斷句中(if, guard, while.....)
    範例:
if #available(iOS 8, *) {
  //可在 iOS 8 及其以上系統執行判斷式內容
}

guard #available(iOS 8, *) else {
  return //iOS 8 以下系统就直接離開判斷式
}

Additional
@available 還有其他一些參數可以使用:
deprecated=version#:從指定平台或某個版本開始不建議使用
obsoleted=version#:從指定平台或某個版本開始淘汰(與 deprecated 的區別,deprecated 是還可以繼續使用,只不過是不建議。obsoleted 是使用就會 compiler error)
message=message:给一些附加信息
unavailable:指定平台上是無效的
renamed=newname:重命名宣告

Reference:
Swift Attributes


上一篇
iOS App 實作(9) GPS 定位-2(Google Map)
下一篇
iOS App 實作(10)Parsing data form API
系列文
30天Swift入門學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

我要留言

立即登入留言