7.4.5 观察属性的变化

7.4.5 观察属性的变化

在程序运行时,开发者可能希望知道某个值发生了改变,并且在发生改变的那一刻执行一些代码,因此Swift提供了一个特性叫作属性观察(property observation)。在存储属性中可以使用这个特性对属性值的变化进行观察,通过重写willSet方法在属性即将发生改变时得到调用,而didSet方法则是在属性已经发生改变时得到调用。比如,一个学生更换了班级,这个信息需要通知整个学校。那么在Student类的className属性中,就需要增加didSet方法的实现:

重新运行main.swift,控制台多了一行输出:

因此,大家很快就通过这条信息知道“Student A”同学去了5班。(注意:在重写didSet方法时,可以通过oldValue这个变量得到设置之前的值)