OC中我们常重写set
和get
方法来改变UI,swift中重写set
和get
方法是下面这种。先定义一个变量,当调用set方法的时候,系统会有一个newValue
,将newVaule
赋值给我们定义的变量,然后从get
方法里面返回去。swift中一般重写比较少。
var _name: String?
var name: String? {
get {
return _name
}
set {
_name = newValue
}
}
如果只重写get方法,默认为readOnly
。
var name: String? {
return "George"
}
给name赋值时就会报错。
在swift语言中用了willSet
和didSet
这两个特性来监视属性的除初始化之外的属性值变化。
var gender: String? {
willSet {
print("gender:\(String(describing: newValue))")
}
didSet {
print("gender:\(String(describing: oldValue))")
}
}
和OC
相比较,我们可以在didSet
里面执行一些改变UI的操作。