類型屬性
使用的時候直接用類名去調用,只能取值,不能賦值。類型屬性可以當做類里面的一個靜態參數,相當于OC中的static
class var name:NSString{return ""}
print(BB_ImageLabelView.name)//類型屬性要使用類名調用
觀察屬性
觀察 給屬性賦值的狀態。屬性中可設置 willSet、didSet 來觀察屬性的設置
公式:【注意willSet didSet,Set首字母一定要大寫】
var 變量名:數據類型?{
willSet{檢測屬性的狀態}
didSet{檢測屬性的狀態}
}
// 屬性有可能被賦值成nil,所以系統提示 需要init->聲明成可選類型
var age:Int?{
willSet{
print("將要賦值")}
didSet{
print("已經賦值")}
}
F67B3E9F-24F8-4AD4-9763-0F48E8A6AAEB.png
init(frame: CGRect) {
super.init(frame: frame)
age = 20//OC屬性是通過定義一個全局變量,_變量名 讓傳過來的參數給他賦值
swift中不存在給一個臨時的全局變量賦值,所以不可以使用_age=20
實例屬性
是在類里面聲明的變量,使用對象來調用。
公式:var 變量名:屬性類型?
var label:UILabel?//聲明label屬性
懶加載
即懶惰屬性,在使用的時候創建
lazy var list :NSArray = ["1","2"]//可以賦值
lazy var list1:NSArray = NSArray()//也可以不賦值
計算屬性
計算屬性是在屬性中重寫setter、getter方法
公式:
var 變量名:類型{
get{
//自由發揮
return XXX
}
set{
//自由發揮
}
}
//計算屬性
var mmm:Int{
get{return 1+self.mmm}
set{self.mmm *= 200}
}