加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

9.7 Swift属性观察器

发布时间:2020-12-14 06:32:15 所属栏目:百科 来源:网络整理
导读:/** 属性观察器 观察属性的变化,是指属性被修改时可以调用我们事先写好的代码去额外执行一些操作。 类似于 OC 中的 KVO 存在两种属性观察器 1. willSet 在设置新值的时候调用 2. didSet 在设置新值的之后调用 可以直接为除 lazy 属性之外的存储属性添加属性

/**

属性观察器

观察属性的变化,是指属性被修改时可以调用我们事先写好的代码去额外执行一些操作。

类似于OC中的KVO

存在两种属性观察器

1. willSet 在设置新值的时候调用

2. didSet 在设置新值的之后调用

可以直接为除 lazy属性之外的存储属性添加属性观察器,你不可以直接给类里面的计算属性添加属性观察器,

当然也可以在继承类中为父类的计算属性提供属性观察器(后面再讲)。

*/

struct MyRect {

var origion:(x: Double,y: Double) = (0,0) {

willSet {

// 属性被修改之前

print("will set==(newValue.x) (newValue.y)")

}

didSet {

// 属性被修改之后

print("did set==(oldValue.x) (oldValue.y)")

}

}

var size: (w: Double,h: Double) = (0,0)

var center: (x: Double,0)

}

var rect = MyRect()

rect.size = (100,100)

// 内容被修改的时候被调用

rect.origion = (9,9) // setter

// 这个时候不会调用了

let dd = rect.origion // getter

rect.center = (rect.origion.x + rect.size.w / 2,rect.origion.y + rect.size.h / 2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读