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方法的前面

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

  • 相关阅读:
    AppScan安全问题解决方案
    WPF方法 获取控件在屏幕的位置和自动控件位置
    WPF获取鼠标点击位置和API使用
    system.windows.controls
    .net 获取项目的根目录
    InvokeRequired
    控件取图片和矩形框 小测试
    mariadb 设置远程访问
    代码生成器 链接
    分享个网站
  • 原文地址:https://www.cnblogs.com/LiJinfu/p/6089295.html
Copyright © 2011-2022 走看看