首页 > 代码库 > swift_属性观察者
swift_属性观察者
//: Playground - noun: a place where people can play
import Cocoa
var str = "Hello, playground"
定义Class类
测试类
swift代码:
class Test{ //定义一个变量属性 var name :String? = "Tom" {// willSet{// print("name_value-changeAfter:\(newValue)")// }// didSet{// print("name_value-changeBefore:\(oldValue)")// } //调换willSet和didSet两个方法的顺序 //看效果 didSet{ print("name属性值被改变前的value:\(oldValue)") } willSet{ print("name属性值将要变成:\(newValue)") } }}let test = Test()test.name! = "Jason"//test.name! = "Jack"//test.name! = "张三"//test.name! = "李四"
运行结果:
name属性值将要变成:Optional("Jason")name属性值被改变前的value:Optional("Tom")
/********************************************************************************************************
总结:
swift的属性观察者,
使用属性观察者,就是实时查看属性value的变化,很实用的一个东西
属性观察者提供了两个属性和方法
oldValue和newValue两个属性
willSet和didSet两个方法
willSet这个函数会在属性value改变之前被调用,在方法中可以使用newValue属性来查看属性将要接受的新值
didSet这个函数会在属性value改变之后被调用,在方法中可以使用oldValue属性来查看属性value被改变前的一个过期值
方法顺序的问题,
属性的value被改变前,willSet方法先执行,didSet方法才会执行,即使将didSet方法放在willSet方法的前面
*********************************************************************************************************/
swift_属性观察者