属性观察器willSet与didSet

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

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

1     var name:String?{
2         willSet{
3             print("新值:(newValue);旧值:(name)")
4         }
5         didSet{
6             print("旧值:(oldValue);name = (name)")
7         }
8     }

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

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

原文地址:https://www.cnblogs.com/panda1024/p/6228004.html