1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
protocol PropertyObserver : class { 属性即将改变监听方法 - parameter propertyName: 属性名 - parameter newPropertyValue: 新的值 */ func willChangePropertyName(propertyName:String, newPropertyValue:Int) 属性已经改变监听方法 - parameter propertyName: 属性名 - parameter oldPropertyValue: 原来的值 */ func didChangePropertyName(propertyName:String, oldPropertyValue:Int) }
class TestChambers { weak var observer:PropertyObserver? var testChamberNumber: Int = 0 { willSet(newValue) { observer?.willChangePropertyName("testChamberNumber", newPropertyValue:newValue) } didSet { observer?.didChangePropertyName("testChamberNumber", oldPropertyValue:oldValue) } } }
class Observer : PropertyObserver { func willChangePropertyName(propertyName: String, newPropertyValue: Int) { print("\(propertyName)的值将要改变为\(newPropertyValue)") } func didChangePropertyName(propertyName: String, oldPropertyValue: Int) { print("\(propertyName)的值已经改变,原来的值为\(oldPropertyValue)") } }
var observerInstance = Observer() var testChambers = TestChambers() testChambers.observer = observerInstance testChambers.testChamberNumber += 1
|