花落√莫相思

46-Swift之属性检测器(willSet&didSe

2017-07-14  本文已影响20人  NetWork小贱

一 、 willSet & didSet 的介绍

属性观察器用于监控一个属性的变化(属性初始化除外),针对属性值的变化做出响应的处理。
##> 属性观察器有以下特点:
1、当属性发生变化时,就先触发 willSet ,然后触发didSet 。
2、当创建属性观察器的时候,必须指明属性的类别。否则,将会编译不能通过。
3、willSet可以带一个newName的参数。否则,newName默认命名为newValue。
4、didSet可以带一个oldName的参数,表示旧的属性,不带的话默认命名为oldValue。
5、属性初始化的时候,willSet和didSet 不被调用。
6、属性发生变化,变化后和原来一样则willSet和didSet 也被调用。

二、 willSet & didSet 的使用

1、 创建一个类,并使它的一个属性添加观察器

class CarSwift  {
    /**
     车名
     */
    var carName = "宝马"
    /**
     铁的价格
     */
    var ironPrice :Double = 0.0
    {
        willSet{
            print("铁涨价了!")
        }
        
        didSet{
            carTotalPrice = carWeight * ironPrice
        }
    }
    /**
     车的重量
     */
    var carWeight = 120.0
    /**
     车总价格
     */
    var carTotalPrice :Double = 0.0
}

2、 对属性观察器的测试

/**
 属性的监控测试
 */
let MyCar = CarSwift.init()
MyCar.ironPrice = 110.0
let MyCarPrice = MyCar.carTotalPrice
print("我的车的价格是:" + "\(MyCarPrice)")

其输出结果:

/*
输出:
铁涨价了!
我的车的价格是:13200.0
*/

上一篇下一篇

猜你喜欢

热点阅读