程序员手机移动程序开发

浅谈swift中的属性观察者

2016-12-26  本文已影响77人  coder小鹏

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

上一篇下一篇

猜你喜欢

热点阅读