KVO,一种观察者的机制,通过对某个对象的某个属性添加观察者,当该属性改变,就会调用"observeValueForKeyPath:"方法。
KVC,key value coding , 键值编码,提供一种机制来间接访问对象的属性。基于KVO技术来实现的
1.kvo是基于runtime机制实现的
2.当某个类的属性对象第一次被观察室,系统自动创建一个该类派生类,在派生类中重写被观察属性的setter方法.在setter方法内部实现真正的键值观察通知机制,
1)在对象的属性第一次被观察时.系统会将isa指针指向其重写setting的派生类,
2)键值观察通知依赖于NSObject的两个方法willchangevalueforkey 和didchangeValueforKey .willchange在被观察属性发生改变前调用,didchange在发生变化后调用,随后observeValueForKey被调用
在重写的setting需要完成三个操作willchange -> setvalue -> didchange
oc中,可以用一个类调用它的某一个方法,而这个方法就是消息, 调用方法就是给类发送了一条消息
oc的消息是动态绑定的,也就是说在运行期才能确定调用函数