swift之属性观察 (willSet和didSet)

 
 

属性观察器控制和响应属性的变化,当属性被设置的时候回调用属性观察器,主要有以下几个特点:

  • 属性改变之前触发willSet方法,属性改变之后触发didSet方法
  • 在给属性添加观察者之前必须要明确申明属性的类型,否则编译器会报错
  • 属性初始化时,willSetdidSet都不会调用,只有在设置属性值时才会调用
  • 当设置的值和原来的值一样时,willSetdidSet也会被调用
  • willSet有一个newValue参数,,,didSet有一个oldvalue参数 代码示例如下:

     var age:Int = 18{
    
        didSet{
            print("didSet   \(oldValue)")
        }
        willSet{
            print("willSet  \(newValue)")
        }    
      }
    /**
     *  age重新赋值并打印
     */
    age = 10;
    print("   \(age)")
    age = 100
    print("   \(age)")

    age = 200
    print("   \(age)")
    age = 18
    print("    \(age)")

来张打印图直视一下结果吧~~~


打印结果.png

小菜鸟进阶中。。。。。有问题欢迎讨论指教~ 。。。。。 闪人咯,时间留给你自己玩。。。。。



作者:茶茶茶茶花
链接:http://www.jianshu.com/p/1612161b3906
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值