はじめに
- Swiftの変数には
didSetとwillSetというプロパティオブザーバーがあり、変数の値が変更される前と後のタイミングで任意の処理を行うことが出来る機能が存在します。
didSet
- 新しい変数の値がセットされた後に呼び出される
didSet is called immediately after the new value is stored.
willSet
- 新しい変数の値がセットされる前に呼び出される
willSet is called just before the value is stored.
コード
import Foundation
var ab = (99, 100, 101)
var before: Int = ab.1 {
didSet {
print("old: \(oldValue)")
}
}
var after: Int = ab.1 {
willSet {
print("new: \(newValue)") // after = ab.2のセット前に更新
}
}
print(before, after)
before = ab.0
after = ab.2
print(before, after) // before = ab.0のセット後に更新
出力
100 100
old: 100
new: 101
99 101
引用