9.7 Swift属性观察器

前端之家收集整理的这篇文章主要介绍了9.7 Swift属性观察器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

/**

属性观察器

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

类似于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)

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

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

@H_248_301@ // 这个时候不会调用

let dd = rect.origion // getter

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

猜你在找的Swift相关文章