OC消息转发

1. 动态方法解析。+resolveInstanceMethod:(实例方法)或者+resolveClassMethod:(类方法)动态为类增加实例/类方法。

2. 备用接收者。- (id)forwardingTargetForSelector:(SEL)aSelector 将消息转发给其他对象处理。只能转发,不能做其他操作。

3. 完整转发。- (void)forwardInvocation:(NSInvocation *)anInvocation 将消息转发,可以做修改参数等操作。需要实现-(NSMethodSignature*)methodSignatureForSelector:(SEL)aSelector 方法。

 

转发过称为:1->2->3;前面的如果能处理则不会继续转发。

 

通过3,并且实现respondsToSelector:和isKindOfClass:,可以实现多重继承。

posted on 2015-11-30 19:48  gjcat88  阅读(135)  评论(0编辑  收藏  举报

导航