怠慢プログラマーの備忘録

怠慢でナマケモノなプログラマーの備忘録です。

【Swift】Property Observerで変数を監視する

Objective-C にあった addObserver:forKeyPath:options:context: + observeValueForKeyPath:ofObject:change:context: のような仕組みは Swift では言語レベルで用意されています。

つまりは、プロパティの変更前後に処理を入れることができます。

プロパティで値を受け取った時に、渡された値を加工して保持するわけでないのなら、Observer を使いましょう。

var name: String {
    willSet {
        println("name: \(self.name)")
        println("name が \(oldValue) から \(newValue) に変更されようとしています。")
    }
    
    didSet {
        println("name: \(self.name)")
        println("name が \(oldValue) から \(newValue) に変更されました。")
    }
}

 

 

詳解 Swift 第4版

詳解 Swift 第4版