首页 > 代码库 > 存储型变量监视器和属性监视器willset与didset
存储型变量监视器和属性监视器willset与didset
可以用willset和didset监视器来声明一个存储型变量或属性。
var
num
= 0 {
willSet(setter name) {//do something here
}
didSet(setter name
) {//do something here
}
}
当变量或属性的值被改变时,willset和didset监视器提供了一个监视方法(适当的回应)。 监视器在变量或属性第一次初始化时不会被运行,只有在值被外部改变时才会被运行。
willset监视器只有在变量或属性值被改变之前运行。新的值作为一个常量经过willset监视器,因此不可以在 willset语句中改变它。didset监视器在变量或属性值被改变后立即运行。和willset监视器相反,为了以防止你仍然 需要获得旧的数据,旧变量值或者属性会经过didset监视器。这意味着,如果你在变量或属性自身的didiset监视器语句中设置了一个值,你设置的新值会取代刚刚在willset监视器中经过的那个值。
在willset和didset语句中,setter名和圆括号的语句是可选的。如果你写了一个setter名,它就会作为willset和didset的参数被使用。如果你不写setter名, willset监视器初始名为newvalue,didset监视器初始名为oldvalue。
当你提供一个willset语句时,didset语句是可选的。同样的,在你提供了一个didset语句时,willset语句是可选的。
存储型变量监视器和属性监视器willset与didset
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。