美文网首页程序员手机移动程序开发
浅谈swift中的属性观察者

浅谈swift中的属性观察者

作者: coder小鹏 | 来源:发表于2016-12-26 22:03 被阅读77次

    Swift-属性观察者(willSet和didSet)

    属性观察者,类似于触发器.用来监视属性的除了初始化之外的属性变化,当属性值发生改变是可以对此作出响应.有如下特点

    1,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet。

    2,给属性添加观察者必须要声明清楚属性类型,否则编译器报错。

    3,willSet可以带一个newName的参数,没有的话,该参数默认命名为newValue。

    4,didSet可以带一个oldName的参数,表示旧的属性,不带的话默认命名为oldValue。

    5,属性初始化时,willSet和didSet不会调用。只有在初始化上下文之外,当设置属性值时才会调用。

    6,即使是设置的值和原来值相同,willSet和didSet也会被调用

    使用这两个方法十分简单,我们只要在属性声明的时候添加对应的代码块,就可以对设定的值和已经设置的值进行监听了,具体操作如下:

    class MyClass {

    var data: RadioModel! {

    willSet {

    self.data = newValue

    }

    didSet {

    self.titleLabel.text = self.data.title

    }

    }

    在oc语言中,使用mvc模式搭建界面时,在C(即controller)中,将请求回来的数据放到模型里面,然后写一个方法将该模型传到V(即View)层展示。在swift语言中,我们可以利用属性观察器的特性,同样的在C中对模型进行监测,从而在V层展示。

    为了便于理解,我写了个小demo放到我的github上,想了解的可以下载。https://github.com/smallSmallWhite/propertyInspector

    相关文章

      网友评论

        本文标题:浅谈swift中的属性观察者

        本文链接:https://www.haomeiwen.com/subject/elksvttx.html