I have two protocols
@protocol P1
-(void) printP1;
-(void) printCommon;
@end
@protocol P2
-(void) printP2;
-(void) printCommon;
@end
Now
The common solution is to separate the common protocol and make the derived protocols implement the common protocol, like so:
@protocol PrintCommon
-(void) printCommon;
@end
@protocol P1 < PrintCommon > // << a protocol which declares adoption to a protocol
-(void) printP1;
// -(void) printCommon; << available via PrintCommon
@end
@protocol P2 < PrintCommon >
-(void) printP2;
@end
Now types which adopt P1
and P2
must also adopt PrintCommon
's methods in order to fulfill adoption, and you may safely pass an NSObject
through NSObject
parameters.