有点像老板和员工的扯皮过程
1.这个方法编号没实现,怎么办?你还做不做了?
+ (BOOL)resolveInstanceMethod:(SEL)sel;
+ (BOOL)resolveClassMethod:(SEL)sel;
返回true:做就大家相安无事
返回false:不做就走2
2.那你帮我找个家伙来处理吧
- (id)forwordingTargetForSelector:(SEL)sel
返回了对象,不管能不能做事,都不会再找我麻烦了,所有的事情都会给到下一个对象,有点甩锅的意思
return nil;不提供就走3
3.让你找个人来处理都找不到,垃圾,那你说说这个个东西怎么搞的吧,我去别人搞,不然我告你(崩溃)
- (NSMethodSignature *)methodSignatureForSelector:(SEL)sel
// NSMethodSignature : 由参数,返回值的描述, 加上sel足以确定一个方法类型;
提供了方法签名对象:大家好聚好散
不提供老板就发飙了
4.发布招聘广告,找人代工
- (void)forwordInvocation:(NSInvocation *)anInvocation
看到返回值是 void,就有点大家都放弃的感觉了;
该函数意思是:这个案子,有捡漏的就给捡漏的好了,没有就丢掉了