在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、简单介绍 属性观察器监控和响应属性值的变化,每次属性被设置值的时候都会调用属性观察器,甚至新的值和现在的值相同的时候也不例外。 可以为除了延迟存储属性之外的其他存储属性添加属性观察器,也可以通过重载属性的方式为继承的属性(包括存储属性和计算属性)添加属性观察器。 注意: 不需要为无法重载的计算属性添加属性观察器,因为可以通过 setter 直接监控和响应值的变化。
2、监测方式 可以为属性添加如下的一个或全部观察器:
分析: willset观察器会将新的属性值作为固定参数传入,在 newValue表示。类似地,didSet观察器会将旧的属性值作为参数传入,可以为该参数命名或者使用默认参数名oldValue。 注意: willSet和didSet观察器在属性初始化过程中不会被调用,它们只会当属性的值在初始化之外的地方被设置时被调用。
3、实现例子: class Student{ var score:Int = 0{ willSet{ print("About to set score to \(newValue)") } didSet{ if score > oldValue { print("这次分数进步了 \(score - oldValue) scores") } } } } let student = Student() student.score = 80 student.score = 90 student.score = 100 打印结果: About to set score to 80 进步了 80 scores About to set score to 90 进步了 10 scores About to set score to 100 进步了 10 scores
|
请发表评论