11.6 Swift重写属性观察器

        /**

         重写 属性观察器

         1.只能给非lazy属性的变量存储属性设定属性观察器,不能给计算属性设定属性观察器。

         

         属性观察器的限制:(1)不可以给只读的存储/计算属性,在子类中设定属性观察器,

         (因为只读,不会改变嘛)

         

         // 必须在父类中是可读可写的,才可以在子类中重写属性观察器啊。

         // 可以重写父类中的计算属性的属性观察器


         */

        

        class Observer {

            var storeProperty: Int = 0 {

                willSet {

                    print("storeProperty father will Set")

                }

                

                didSet {

                    print("storeProperty father did Set")

                }

            }

            

            

            // 不能给计算属性设定属性观察器

            var computeProperty: Int {

                get {

                    return 0

                }

                

                set {

                    print("Do nothing!")

                }

            }

        }

        

        

        class ChildOfObserver: Observer {

            

            // 可以重写父类中变量存储属性

            override var storeProperty: Int {

                willSet {

                    print("storeProperty will Set")

                }

                

                didSet {

                    print("storeProperty did Set")

                }

            }

            

            // 可以重写父类中的计算属性的属性观察器

            override var computeProperty: Int {

                willSet {

                    print("computeProperty will Set")

                }

                

                didSet {

                    print("computeProperty did Set")

                }

            }

        }

        

        let co = ChildOfObserver.init()

        co.storeProperty = 10

        /**

         will Set

         father will Set

         father did Set

         did Set


         */

        

        

        co.computeProperty = 9

        /**

         computeProperty will Set

         Do nothing!

         computeProperty did Set

         */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值