首先:添加观察着对象的时候,干了啥事呢?系统创建了一个字类名为:NSKVONotifing_父类,并且重写了被观察者对象的监听属性的setter方法,setter方法里面又重写了
父类的setter方法,同时ISA指针指向了子类,当后面更改属性值的时候,即person.height = 181是相当于son.height = 181,由于里面重写了父类的setter方法,故先调用了willchange方法,记录old属性,然后更改了height的值,然后调用oberserveValueForKey方法,传递旧值和新值.