zoukankan      html  css  js  c++  java
  • swift_属性观察者

    //: Playground - noun: a place where people can play

    import Cocoa

    var str = "Hello, playground"

    定义Class类

    测试类

    swift代码:

    class Test{
        //定义一个变量属性
        var name :String? = "Tom" {
    //        willSet{
    //            print("name_value-changeAfter:(newValue)")
    //        }
    //        didSet{
    //            print("name_value-changeBefore:(oldValue)")
    //        }
    
            //调换willSet和didSet两个方法的顺序
            //看效果
            didSet{
                print("name属性值被改变前的value:(oldValue)")
            }
            willSet{
                print("name属性值将要变成:(newValue)")
            }
        }
    }
    
    let test = Test()
    
    test.name! = "Jason"
    
    //test.name! = "Jack"
    
    //test.name! = "张三"
    
    //test.name! = "李四"
    

    运行结果:

    name属性值将要变成:Optional("Jason")
    name属性值被改变前的value:Optional("Tom")
    

    /********************************************************************************************************

        总结:

            swift的属性观察者,

                使用属性观察者,就是实时查看属性value的变化,很实用的一个东西

            属性观察者提供了两个属性和方法

                oldValue和newValue两个属性

                willSet和didSet两个方法

            willSet这个函数会在属性value改变之前被调用,在方法中可以使用newValue属性来查看属性将要接受的新值

            didSet这个函数会在属性value改变之后被调用,在方法中可以使用oldValue属性来查看属性value被改变前的一个过期值

            方法顺序的问题,

                属性的value被改变前,willSet方法先执行,didSet方法才会执行,即使将didSet方法放在willSet方法的前面

    *********************************************************************************************************/

  • 相关阅读:
    生成格雷码 转自leetcode
    webstorm注册码 永久有效!!!(亲测有效)
    Myeclipse或者eclipse太卡
    对封装的再次理解(容器)
    几个好的参考的网站
    将json字符串转为json对象,从对象中取需要的数据
    ElementUI学习笔记
    Oracle的case when 和decode
    20190807更新数据相关笔记
    oracle未查找到任何数据问题
  • 原文地址:https://www.cnblogs.com/LiJinfu/p/6089295.html
Copyright © 2011-2022 走看看