属性观察器willSet与didSet

时间:2021-03-05 12:52:35

willSet与didSet是swift特有的,就是监听属性值的变化,但有一个小注意点。

willSet与didSet调用时机:对象创建后的第一次赋值时开始调用。也就是说,初始化时(包含重载的init或重写的init)不会调用。

     var name:String?{
willSet{
print("新值:\(newValue);旧值:\(name)")
}
didSet{
print("旧值:\(oldValue);name = \(name)")
}
}

willSet里面的newValue == didSet里面的name:新值

willSet里面的name == didSet里面的oldValue:旧值