Skip to content

Instantly share code, notes, and snippets.

@McZonk
Created August 28, 2014 09:07
Show Gist options
  • Save McZonk/f08ed10545fa90599619 to your computer and use it in GitHub Desktop.
Save McZonk/f08ed10545fa90599619 to your computer and use it in GitHub Desktop.
#import <Foundation/Foundation.h>
@protocol SomeProtocol <NSObject>
- (void)someMethod;
@end
@protocol MyProtocol <SomeProtocol>
- (void)myMethod;
@end
@interface NSObject (MyProtocol)
- (void)myMethod;
@end
@implementation NSObject (MyProtocol)
- (void)myMethod
{
[(id<SomeProtocol>)self someMethod];
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool
{
id<SomeProtocol> object = nil;
[object someMethod];
[(id<MyProtocol>)object myMethod];
[object myMethod]; // error
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment