swift语言的学习笔记十一(willSet与didSet)

原创 2015年07月08日 14:58:27

在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 基本知识点之十 —willSet与didSet的用法

属性观察器 属性观察器监控和响应属性值的变化,每次属性被设置值的时候都会调用属性观察器,甚至新值和当前值相同的时候也不例外。可以为除了延迟存储属性之外的其他存储属性添加属性观察器,也可以通过重写属性...

Swift - 属性观察者(willSet与didSet)

//: Playground - noun: a place where people can play//import UIKit // //var str = "Hello, playground...

Swift - 属性观察者(willSet与didSet)

//: Playground - noun: a place where people can play import UIKit var str = "Hello, playground" /...

swift语言的学习笔记十一(performSelector)

在OC中使用好好的performSelector,但不知为什么在swift有意的被拿掉了。更有甚者连IMP, objc_msgSend也不能用了。虽然想不通为什么,但应该有他的道理。就不纠结了。 ...
  • xdrt81y
  • xdrt81y
  • 2015年03月23日 14:54
  • 1217

初探swift语言的学习笔记十一(performSelector)

swift 下的performSelector的伪装实现。

枚举—Swift学习笔记(十一)

注:本文为自己学习The Swift Programming Language的笔记,其中的例子为引用原书和其他博文或自己原创的。每个例子都会批注一些实践过程中的经验或思考总结。 1.基础...

Swift2.2 学习笔记(十一) ___集合类型

数组 数组中使用有序列存储相同类型的多重数据。相同的值可以多次出现在一个数组不同的位置中。 Swift 数组对存储数据有具体要求。不同于oc的NSArray 和 NSMutable...

Swift学习笔记(十一)继承

继承 在 Swift 中,类可以调用和访问超类的方法,属性和附属脚本(subscripts),并且可以重写(override)这些方法,属性和附属脚本来优化或修改它们的行为 可以为类中继承来的属性...

The Swift Programming Language学习笔记(十一)——属性

属性 存储属性 常量结构体的存储属性 延迟存储属性 存储属性和实例变量 计算属性 便携setter声明 只读计算属性 属性观察器 全局变量和局部变量 类型属性 类型属性语法 获取和设置类型属性的值 属...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift语言的学习笔记十一(willSet与didSet)
举报原因:
原因补充:

(最多只允许输入30个字)