在消息转发的过程中,可以告诉对象如何处理无法解读的未知消息.
消息转发分两大阶段,第一阶段为"动态方法解析",就是判断接收者所属的类能否动态添加方法处理未知消息.若使用该方法,需实现相关的代码.通常用来实现@dynamic属性.
第二阶段第一步,如果第一阶段返回NO,则会查看接收者内部其他对象是否能够处理未知的选择子,如果可以便返回该对象,否则进入下一步.
第二阶段第二步就是完整的消息转发机制.先创建NSInvocation对象,把选择器,目标,参数放入.在触发NSInvocation对象时,"消息派发系统"会把消息指派给目标对象.
如果发现调用操作不是本类处理,那么会继续调用超类的同名方法,直到最后调用NSObject类的"doesNotRecognizeSelector:"抛出异常,表示该选择子未能处理.