Object-C--->Swift之(十一)属性观察者

简介:

属性观察者机制能让程序在属性被赋值时获得执行代码的机会,用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应

具体包括两个特殊的回调方法:

willSet(newValue):被观察的属性即将被赋值之前自动调用方法。

didSet(old Value):被观察的属性被赋值完成之后自动调用该方法。

观察的范围

除了延迟存储属性之外的所有存储属性(包括实例存储属性或类型存储属性)。
可通过重载方式为继承得到的属性(包括存储属性和计算属性)添加

属性观察者

定义语法格式

[修饰符] var 存储属性名:属性类型[=初始值]{
 willSet(newValue){
//属性即将被赋值之前自动执行的代码
}didSet(oldValue)
{
//属性被赋值完成之后自动执行的代码
}
}

说明:

willSet:willSet部分可定义一段执行性代码,被观察的属性即将被赋值之前自动执行这块代码。willSet部分可以显式制定一个形参名,该形参代表了该属性将被设置的新值。Swift也可以省略这个形参名,Swift将为该形参提供一个隐式形参名:newValue。

didSet:didSet部分可定义一段执行性代码,被观察的属性被成功赋值之后自动执行这块代码。didSet部分可以显式制定一个形参名,该形参代表了该属性将被修改之前的旧值。Swift也可以省略这个形参名,Swift将为该形参提供一个隐式形参名:oldValue。

  class Person {
    var age:Int=0
        {
        willSet{
         if(newValue<0 || newValue>200)
         {
            print("你输入的有误,非人类呀")
        }
         else{
            print("即将成功")
            }

        }
        didSet{
        print("已完成,原来的年龄为\(oldValue)")

        }
    }
}
 var p=Person()
 p.age=1000
目录
相关文章
|
3月前
|
存储 算法 安全
【Swift专题】聊聊Swift中的属性
属性是面向对象语言中非常基础的语法特性,我们讲属性,实际上就是讲与类本身或类实例关联的数据。在面向对象的语言中,类作为重要的数据结构会封装数据与函数,类中的函数我们通常称其为方法,而数据则就是属性。
40 1
|
7月前
|
存储 Swift
Swift属性包装器@propertyWrapper
Swift属性包装器@propertyWrapper
75 0
|
存储 监控 Swift
Swift实用小册09:存储属性、计算属性及属性观察器的使用
Swift实用小册09:存储属性、计算属性及属性观察器的使用
216 0
Swift实用小册09:存储属性、计算属性及属性观察器的使用
|
存储 编译器 Swift
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.0 - day4-闭包、属性、方法、下标
287 0
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.1—隐式解包可选值属性
Swift5.1—隐式解包可选值属性
211 0
|
存储
Swift5.1—延迟属性
Swift5.1—延迟属性
360 0
|
存储 监控
Swift5.1—属性观察器
Swift5.1—属性观察器
195 0
|
存储 Swift iOS开发
Swift5.1—类型属性
Swift5.1—类型属性
114 0
Swift5.1—类型属性
|
存储
Swift5.1——计算属性
Swift5.1——计算属性
137 0
Swift5.1——计算属性
|
存储 监控 Swift
Swift5.1—属性
Swift5.1—属性
109 0

相关课程

更多