属性监视器
1、属性监视器功能
@H_404_13@ 属性观察器控制和响应属性的变化,@H_404_13@每次属性被设置值的时候会调用属性观察器,@H_404_13@甚至新的值和旧的值相同的时@H_404_13@候也不例外。
@H_404_13@ @H_404_13@可以通过重载属性的方法为继承的谁能够(@H_404_13@包括存储属性和计算属性)@H_404_13@添加属性观察器
注意:@H_404_13@不需要为无法重载的计算属性添加属性观察器,@H_404_13@因为可以通过setter@H_404_13@直接监控和响应值的变化
2、属性监视器方法
1.@H_404_13@willSet
@H_404_13@ 介绍:illSet观察器会将新的属性值作为固定参数传入@H_404_13@,在@H_404_13@willSet的事项代码中可以为这个参数指定一个名称@H_404_13@,@H_404_13@如果不指定则参数默认名称用@H_404_13@newValue表示
@H_404_13@ 2.didSet
@H_404_13@ 功能:didSet观察器会将旧的属性值作为参数传入@H_404_13@,参数默认名称为@H_404_13@: oldValue
@H_404_13@3、注意
@H_404_13@ 1、willSet和@H_404_13@didSet观察器在属性初始化过程中不会被调用@H_404_13@,它们只会当属性的值在初始化之外的地方被设置时被调用
@H_404_13@ 2、@H_404_13@如果在didSet@H_404_13@观察器里为属性赋值,@H_404_13@这个值会替换观察器之前设置的值。
@H_404_13@4、代码范例
class Person: NSObject { // 年龄 属性 var age: Int? // 姓名 属性 var name: String? { willSet{ println("willSet") } didSet{ println("didSet") } } }原文链接:https://www.f2er.com/swift/327139.html