I have two protocols
@protocol P1
-(void) printP1;
-(void) printCommon;
@end
@protocol P2
-(void) printP2;
-(void) printCommon;
@end
Now, I am implementing these two protocols in one class
@interface TestProtocolImplementation : NSObject <P1,P2>
{
}
@end
How can i write method implementation for "printCommon". When i try to do implementation i have compile time error.
Is there any possibility to write method implementation for "printCommon".
The common solution is to separate the common protocol and make the derived protocols implement the common protocol, like so:
Now types which adopt
P1
andP2
must also adoptPrintCommon
's methods in order to fulfill adoption, and you may safely pass anNSObject<P1>*
throughNSObject<PrintCommon>*
parameters.for me the following code did worked:
Compiler user: Apple LLVM 3.0 But if you're designing a solution like this, try to avoid such situations.