Object-C--->Swift之(十一)属性观察者
来源:互联网 发布:淘宝怎么购买东西 编辑:程序博客网 时间:2024/05/22 15:25
属性观察者机制能让程序在属性被赋值时获得执行代码的机会,用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应
具体包括两个特殊的回调方法:
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
0 0
- Object-C--->Swift之(十一)属性观察者
- Object-C--->Swift之(十)存储属性
- Object-C--->Swift之(九)延迟存储属性
- Swift(十一、属性)
- Effective Object-C之属性
- Object-C--->Swift之(二)可选类型
- Object-C--->Swift之(六)函数类型
- Object-C--->Swift之(七)函数重载
- Object-C--->Swift之(八)枚举
- Object-c 观察者模式
- Object-C 和 Swift 混编 之二 Swift 中调用 Object-C
- Object-c学习之路十一(NSDate和反射)
- swift object-c 使用
- object-c与swift
- swift object-c互用
- Object-C--->Swift之(一)元组(tuple)类型
- Object-C--->Swift之(四)强大的Switch
- Object-C--->Swift之(五)数组和字典
- 深入理解JVM之内存区域与内存溢出
- 陶哲轩实分析 3.1节 习题试解
- LeetCode77. Combinations
- 操作SQL构件
- Windows 7下硬盘安装Ubuntu 13.04图文教程
- Object-C--->Swift之(十一)属性观察者
- HDU-1253 胜利大逃亡 (BFS)
- 【slighttpd】基于lighttpd架构的Server项目实战(7)—http-parser
- [Leetcode]211. Add and Search Word - Data structure design @python
- jQuery1(jQuery介绍及$)
- 猿代码邀请码
- LeetCode90. Subsets II
- 操作权限构件
- 为什么直接把javascript的代码写进html就行但是调用js文件就不行