例子:
class MyClass:NSObject {
dynamic var date = NSData()
dynamic var num = 0
}
private var myContext = 0
var myObj: MyClass!
override func viewDidLoad() {
super.viewDidLoad()
myObj = MyClass()
myObj.addObserver(self, forKeyPath: "num", options: .New, context: &myContext)
self.myObj.num = 1
}
override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
print("触发该方法")
}
//
//dynamic只能用于类成员,指明它们需要动态派发,此时才能使用kvc
//需要一个子类,继承自NSObjec(只有继承之NSObject的类才能使用kvc)
//设置对应的key path(需要观察的成员名)