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:旧值