9.7 Swift属性观察器

        /**

         属性观察器

         观察属性的变化,是指属性被修改时可以调用我们事先写好的代码去额外执行一些操作。

         类似于OC中的KVO

         

         存在两种属性观察器

         1. willSet 在设置新值的时候调用

         2. didSet  在设置新值的之后调用

         可以直接为除 lazy属性之外的存储属性添加属性观察器,你不可以直接给类里面的计算属性添加属性观察器,

         当然也可以在继承类中为父类的计算属性提供属性观察器(后面再讲)。

         */

        

        

        struct MyRect {

            var origion:(x: Double, y: Double) = (0, 0) {

                willSet {

                    // 属性被修改之前

                    print("will set==\(newValue.x\(newValue.y)")

                }

                

                didSet {

                    // 属性被修改之后

                    print("did set==\(oldValue.x\(oldValue.y)")

                }

            }

            var size: (w: Double, h: Double) = (0, 0)

            var center: (x: Double, y: Double) = (0, 0)

        }

        

        var rect = MyRect()

        

        rect.size = (100, 100)

        

        //   内容被修改的时候被调用

        rect.origion = (9, 9) // setter

        

        // 这个时候不会调用了

        let dd = rect.origion // getter

        

        

        rect.center = (rect.origion.x + rect.size.w / 2, rect.origion.y + rect.size.h / 2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值