1. 程式人生 > >Swift:屬性觀察者willSet和oldSet

Swift:屬性觀察者willSet和oldSet

import Foundation
class Stepcounter { //  定義一個類,記錄走的步數
    var step: Int = 10 { // 注意是這裡初始化的是10
        willSet { // 屬性觀察者willSet是定義在變數step後面的大括號裡面的,如果省略引數,預設引數為newValue,這裡存的就是設定的新變數的值
            print("now willSet is \(newValue)")
        }
        didSet { // 同理,這裡省略預設為oldValue,存的是新值之前的值
            if step > oldValue {
                print("add \(step - oldValue)")
            }
        }
    }
}

let s = Stepcounter()
s.step = 200
s.step = 300
s.step = 500