利用 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 等。