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中运用didSet方法时的注意事项

运用属性观察者 - didSet方法需要注意的事项: didSet方法:在新的值被设定后立即调用。 偶然一说大家估计不知道它到底有什么用处,在实际项目开发中,估计经常会遇到这样的需求: 我有两个变量,...
  • qq_24904667
  • qq_24904667
  • 2016年09月23日 21:48
  • 2793

Swift 基本知识点之十 —willSet与didSet的用法

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

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

在Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化无需说太多,看看下面的代码你就能很快明白的复制代码 import Foundationclass Pe...
  • xdrt81y
  • xdrt81y
  • 2015年07月08日 14:58
  • 2853

swift的willSet、didSet、get、set函数

willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化,一个监听改变之前 一个监听改变之后的属性 get就是Oc中的get函数 set就是OC中的set函数 简单举例 c...
  • Crazy_Mimi_song
  • Crazy_Mimi_song
  • 2016年05月05日 13:53
  • 380

swift get、set、willSet和didSet

在OC中我们经常重写属性的get和set方法来刷新UI之类的事,那在swift中,怎么实现get和set方法呢。         代码如下: 这里另外初始化一个_text的变量,存储新值,...
  • ewfrggregtrwt
  • ewfrggregtrwt
  • 2017年07月31日 18:39
  • 493

Swift中的willSet与didSet(重写属性的Set方法)

Swift中的willSet与didSet(重写属性的Set方法) var rating: CGFloat? { willSet { println("将要设...
  • wenzfcsdn
  • wenzfcsdn
  • 2015年03月06日 23:03
  • 2515

Swift 类的属性观察器 didSet willSet

先看下面代码 class LightBulb { static var maxPower:Int = 30 // 最大功率 var currentPower:Int = 0 { ...
  • qq_18674153
  • qq_18674153
  • 2017年02月16日 15:42
  • 309

Swift中,在初始化时didSet不被调用或无效的解决方法

应用场景: struct Number {     var value: Double = 0 } class testClass:NSObject{     var str : Stri...
  • oDream122
  • oDream122
  • 2017年03月28日 10:11
  • 957

swift 学习(2)get set willSet and didSet

1、get  and set  (calculated property)
  • ERIC_Dream
  • ERIC_Dream
  • 2014年11月19日 09:56
  • 3046

Swift中的willSet与didSet zhuan

在Swift语言中用了willSet和didSet这两个特性来监视属性的除初始化之外的属性值变化 无需说太多,看看下面的代码你就能很快明白的 import Foundation c...
  • sqc3375177
  • sqc3375177
  • 2016年03月08日 10:15
  • 592
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift语言的学习笔记十一(willSet与didSet)
举报原因:
原因补充:

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