属性回调
我们可以将一个函数附加成一个可存储的属性值,无论任何时候改变属性值的时候,都会调用它。我们成它为属性监听者。
我们可以定义两中监听者:在变量改变之前会调用WillSet
,当变量改变之后,会调用didSet
.1234567891011121. class ObervedCirlce {2. var radius:Double = 1.0 {3. willSet{4. print("Radius is changing from \(radius) to \(newValue).")5. }6. }7. var area:Double {8. return(3.14 * radius * radius)9. }10. }11. var oc = ObserveCircle()12. oc.radius = 2.5 //Prints "Radius is changing from 1.0 to 2.5." 13. oc.area //19.625这个例子定义了一个
**ObserveCirlce**
类,并且属性 radius 附件一个监听者,当我们定义属性的时候,通过提供**willSet**
函数来达到监听的目的。当你在playground中运行这段代码时,检查控制台输出,你会看到,每当我们每一次改变 radius 的值的时候,都会输出旧值和新值。下标