Skip to content

Instantly share code, notes, and snippets.

@acoomans
Last active December 20, 2015 11:39
Show Gist options
  • Save acoomans/6124787 to your computer and use it in GitHub Desktop.
Save acoomans/6124787 to your computer and use it in GitHub Desktop.
delegate proxying
#pragma mark - delegate proxying
- (BOOL)respondsToSelector:(SEL)selector {
return (
[super respondsToSelector:selector] ||
[self.delegate respondsToSelector:selector]
);
}
- (id)forwardingTargetForSelector:(SEL)selector {
if ([super respondsToSelector:selector]) {
return self;
} else if ([self.delegate respondsToSelector:selector]) {
return self.delegate;
}
return nil;
}
- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector {
if ([super respondsToSelector:selector]) {
return [super methodSignatureForSelector:selector];
} else if ([self.delegate respondsToSelector:selector]) {
id delegate = self.delegate;
return [delegate methodSignatureForSelector:selector];
}
return nil;
}
- (void)forwardInvocation:(NSInvocation *)invocation {
// ignore
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment