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

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

  • 相关阅读:
    GitLab 重置认证和添加账号缓存
    PHP 正则匹配IP
    git 删除指定版本
    PostgreSQL 9.2 日期运算
    postgre 已有字段修改为自增
    postgresql 导入导出
    PHP TS 和 NTS 版本选择
    background-image属性的设置
    SQLServer 附加数据库后只读或报错解决方法
    IIS 6.0 发布网站使用教程
  • 原文地址:https://www.cnblogs.com/LiJinfu/p/6089295.html
Copyright © 2011-2022 走看看