第12条:理解消息转发机制

在编译期向类发送了其无法解读的消息并不会报错,因为在运行期可以继续向类中添加方法。

当对象接收到无法解读的消息后,就会启动“消息转发”机制,程序员可经由此过程告诉对象应该如何处理未知消息。

 

消息转发分两阶段:

  1、先征询接收者,所属的类是否能动态添加方法,以处理当前这个未知方法,这叫做“动态方法解析”。

  2、完整的消息转发机制。 

      1、找有没有其他对象能处理这条消息。如果有就转发给那个对象。

      2、如果没有才启动完整的消息转发机制。运行期系统把与消息有关的全部细节都封装到NSInvocation对象中,再给接收者最后一次机会,令其设法解决当前还未处理的这条消息。

 

posted @ 2015-03-27 10:56  Pikdays  阅读(130)  评论(0编辑  收藏  举报