消息转发

 

1、resolveInstanceMethod:方法解析,这里是给你机会,给当前类动态添加方法,之后,运行时会继续尝试查找该类的方法

2、forwardingTargetForSelector:备选调用者,如果你返回一个备选调用者,那么方法调用将转给这个备选者执行

3、methodSignatureForSelector:当2没有实现或返回nil的时候,该方法将被调用,这里是最后的机会处理未定义的方法调用。你可以通过+instanceMethodSignatureForSelector:方法返回指定类的方法签名,从而将方法调用转交给其他类执行

4、forwardInvocation:当3返回签名不为nil时,该方法会被调用,这个NSInvocation,就是根据上面的方法签名生成的,你可以通过调用invokeWithTarget,来指定对象来执行

5、doesNotRecognizeSelector:当方法转发失败后,会调用该方法,并且程序crash

posted @ 2019-12-25 18:08  zbblogs  阅读(226)  评论(0编辑  收藏  举报