1.属性观察器只能用于 var
声明的属性,而不能用于 let
常量。
2.willSet
在属性的值被修改之前调用,可以使用 newValue
来获取即将赋予该属性的新值(默认名称为 newValue
,可以自定义)。
3.didSet:
在属性的值被修改之后调用,可以使用 oldValue
来获取修改前的旧值(默认名称为 oldValue
,也可以自定义)。
struct Person {
var name: String {
willSet {
print("willSet-\(newValue)")
}
didSet {
print("didSet-\(oldValue)")
}
}
init(name: String) {
self.name = name
}
}
var person = Person(name: "ios")
person.name = "swift"
struct Person {
var name: String {
willSet(new_Value) {
print("willSet-\(new_Value)")
}
didSet(old_Value) {
print("didSet-\(old_Value)")
}
}
init(name: String) {
self.name = name
}
}
var person = Person(name: "ios")
person.name = "swift"