Swift中的willSet与didSet

在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 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值