Posted at

Swift の変数やプロパティの値監視について

More than 5 years have passed since last update.

変数でもプロパティでも書き方は変わらない


Sample

var piyo: String = "hoge" {
willSet{
NSLog("now:%@", piyo) // set 前の値
NSLog("new:%@", newValue) // set 予定の値
}
didSet{
NSLog("now:%@", piyo) // set 後の値
NSLog("old:%@", oldValue) // set 前の値
}
}

piyo = "fuga" // piyo を書き換える



実行結果


// willSet
now:hoge
new:fuga

// didSet
now:fuga
old:hoge



willSet

willSet は実際に値が set される前に呼ばれる、willSet 内では変数名(プロパティ名)で現在の値に、newValueで新しくセットされる予定の値にアクセスする事が出来る。


didSet

didSet は値が set された後に呼ばれる、didSet 内では変数名(プロパティ名)で set 後の値に、oldValueで set される前の値にアクセスする事が出来る。