KVO是基于runtime机制实现的
当某个类的对象第一次被观察时,系统就会在运行期动态创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter方法。
派生类在被重写的setter方法实现真正的通知机制。