Swift中的willSet与didSet
2015-12-22 15:37
489 查看
在Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化
无需说太多,看看下面的代码你就能很快明白的
无需说太多,看看下面的代码你就能很快明白的
import Foundation class People : NSObject { //普通属性 var firstName:String = "" var lastName:String = "" var nickName:String = "" //计算属性 var fullName:String { get { return nickName + " " + firstName + " " + lastName } } //带属性监视器的普通属性 var age:Int = 0 { //我们需要在age属性变化前做点什么 willSet { println("Will set an new value \(newValue) to age") } //我们需要在age属性发生变化后,更新一下nickName这个属性 didSet { println("age filed changed form \(oldValue) to \(age)") if age<10 { nickName = "Little" }else { nickName = "Big" } } } func toString() -> String { return "Full Name: \(fullName) " + ", Age: \(age) " } } var me = People() me.firstName = "Zhang" me.lastName = "San" me.age = 20 println(me.toString()) /*程序输出 Will set an new value 20 to age age filed changed form 0 to 20 Full Name: Big Zhang San , Age: 20 */
相关文章推荐
- Swift学习笔记(1):断言(Assertions)
- Swift的初始化方法
- swift学习日志——可变参数
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
- AFNetwork swift版Alamofire使用问题集锦
- Swift静态属性
- swift 2
- swift 学习记录(静态方法)
- swift学习日志——输入输出参数
- Ubuntu14.04安装swift2.2
- 利用Swift之协议语法实现页面间的传值功能
- dyld: Library not loaded: @rpath/libswiftCore.dylib报错解决
- swift 学习记录(实例方法)
- 窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用
- Swift 函数(笔记)
- swift-基础08-隐式解析,隐式装包,强制装包和断言
- swift-基础07-if语句,强制解析与可选绑定和nil
- Swift 命名规则
- Swift 数据类型
- iOS --- Swift中泛型(Generic)的基本使用