利用 iOS SDK 的型別屬性(Type Property)生東西

開發 Swift iOS App 時,我們需要生出各種不同的東西幫我們實現不同的功能。大部分的時候,生東西的語法都是型別名稱 + ( ),比方 let view = UIView()。不過也有一些常用或是只需生成一次,可以共用,不需每次重新生成的東西,iOS SDK 習慣將它們定義成型別屬性(type property),在宣告時加上 static 或 class,方便我們以型別名 + . + 屬性名隨時存取,比方以 UIColor.blue 得到藍色。

iOS SDK 的型別屬性常會看到以下幾點特性:

  • 屬性的型別等同於當初存取屬性的型別。

比方 UIColor.blue 的型別也是 UIColor。(不過也有一些型別屬性的例子是屬性的型別不等於存取屬性的型別)

  • 屬性常取名為 current,main,default,shared。

接下來就讓我們實際見識一些 iOS SDK 常用的型別屬性吧。

let blueColor = UIColor.blue

得到藍色。還有很多常用的顏色被定義成型別屬性,像是 UIColor.red,UIColor.yellow 等。

let radian = CGFloat.pi / 180 * 30

CGFloat.pi 得到代表 180 度的弧度,因此 CGFloat.pi / 180 * 30 將得到 30 度的弧度。

let now = Date.now

得到現在時間。

let calendar = Calendar.current

得到目前的月曆。

let page = PlaygroundPage.current

得到目前的 playground page。

let bundle = Bundle.main

得到 App 主要的 bundle,可存取專案裡的檔案。

let queue = DispatchQueue.main

得到主要的 DispatchQueue,被加到此 queue 的工作將由 main thread 執行。

let session = URLSession.shared

得到共享的 URLSession,可用來存取網路上的資料。

let userDefaults = UserDefaults.standard

得到共享的 UserDefaults,可用來儲存簡單的資料。

let app = UIApplication.shared

得到共享的 UIApplication,可用來控制 App,比方 UIApplication.shared.applicationIconBadgeNumber 可控制 App icon 上的數字。

let notificationCenter = NotificationCenter.default

得到預設的 NotificationCenter,可發送和接收通知。

let fileManager = FileManager.default

得到共享的 FileManager,可用來存取檔案。

let screen = UIScreen.main

得到裝置的螢幕物件,可存取螢幕的相關資訊,比方 UIScreen.main.brightness 代表螢幕的亮度。

let device = UIDevice.current

得到目前的裝置,可存取裝置的相關資訊,比方 UIDevice.current.batteryLevel 代表電池的電量。

UnitLength.meters

得到單位為公尺的 UnitLength 物件。還有很多其它單位的例子,比方UnitLength.feet,UnitAngle.degrees 等。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com