將iOS開發中常用的Swift全局函數和extension(因Swift中不能使用宏定義)整理如下。
而對於Objective-C,其宏定義總結請參考博客iOS — 總結Objective-C中常用的宏定義(持續更新中)。
//
// Global.swift
//
// useful global methods and extension for Chris Hu
//
import Foundation
func isIPhone4() -> Bool {
return UIScreen.mainScreen().currentMode?.size == CGSizeMake(640, 960)
}
func isIPhone5() -> Bool {
return UIScreen.mainScreen().currentMode?.size == CGSizeMake(640, 1136)
}
func isIPhone6() -> Bool {
return UIScreen.mainScreen().currentMode?.size == CGSizeMake(750, 1334)
}
func isIPhone6Plus() -> Bool {
return UIScreen.mainScreen().currentMode?.size == CGSizeMake(1242, 2208)
}
func isIPhone6PlusBigMode() -> Bool {
return UIScreen.mainScreen().currentMode?.size == CGSizeMake(1125, 2001)
}
func currentLanguage() -> String {
return NSLocale.preferredLanguages().first!
}
func systemVersion() -> String {
return UIDevice.currentDevice().systemVersion
}
func appVersion() -> String {
return String(NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"]!)
}
extension UIColor {
public convenience init(hexString: UInt32, alpha: CGFloat = 1.0) {
let red = CGFloat((hexString & 0xFF0000) >> 16) / 255.0
let green = CGFloat((hexString & 0x00FF00) >> 8 ) / 255.0
let blue = CGFloat((hexString & 0x0000FF) ) / 255.0
self.init(red: red, green: green, blue: blue, alpha: alpha)
}
}
extension UITableViewDataSource {
// return total rows in the tableView
func totalRows(tableView: UITableView) -> Int {
let totalSections = self.numberOfSectionsInTableView!(tableView) ?? 1
var section = 0, total = 0
while section < totalSections {
total += self.tableView(tableView, numberOfRowsInSection: section)
section++
}
return total
}
}