类型属性
使用的时候直接用类名去调用,只能取值,不能赋值。类型属性可以当做类里面的一个静态参数,相当于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("已经赋值")}
}
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}
}