1、利用RuntimeAPI动态生成一个子类,并且让intance对象的isa指向这个全新的子类
2、当修改intance对象的属性时,会调用NSSetXXXValueNotify函数
3、viewWillValueForKey
父类原来的setter
didChangeValueForKey
内部会触发监听器的监听方法observeValueForKeyPath
1、手动触发KVO
手动调用viewWillValueForKey和didChangeValueForKey
2、直接修改成员变量是否掉起KVO的(只用通过set方法)