簡述
Swift中的類型(class
、struct
、enum
等)屬性和類型方法分別屬于靜態屬性和靜態方法。這種類型的屬性、方法不屬于類型的實例,而屬于類型本身;類型第一次被加載時保存在靜態存儲區,在程序運行過程中一直存在并且只保存一份。在使用時,通過類型來調用類型屬性和類型方法。
示例:
1、枚舉
(enum)
enum NetFire {
case WiFi
case WWAN
var connect: Bool {
switch self {
case .WiFi: return true
case .WWAN: return false
}
}
static var isUpload: Bool {
return true
}
static func isDownload(flag: String) -> Bool {
if flag == "largeFile" {
return true
}
return false
}
}
在枚舉中,存儲型屬性無法使用,故而更不可能使用靜態存儲型屬性了。計算型屬性或方法用static修飾,是為枚舉屬性、枚舉方法(靜態屬性、靜態方法)。
2、結構體
(struct)
struct Api {
static let baseUrl = "https://www.baidu.com"
static var login: String {
return "/login"
}
static func register() -> String {
return "/register"
}
}
在結構體中,存儲型屬性、計算型屬性、方法用static修飾,是為結構體屬性、結構體方法(靜態屬性、靜態方法)。
3、類
(class)
class User: NSObject {
static var name = "young"
static var sex: String? {
return "male"
}
static func getAge() -> Int {
return 18
}
class var inheritableSex: String? {
return "female"
}
class func inheritableAge() -> Int {
return 28
}
}
在類中,存儲型屬性、計算型屬性、方法用static修飾,是為類屬性、類方法(靜態屬性、靜態方法)。PS: 在使用類屬性或類方法時,如果需要子類繼承重寫,則使用class
關鍵字修飾。