Come sopprimere Objective-C warning “incompleta implementazione di classe 'SomeClass'”?
-
27-09-2019 - |
Domanda
Ho una classe che è il routing molti messaggi in interno istanza del componente. Così la classe hanno solo definizione di metodo, ma nessuna implementazione. Come posso sopprimere queste avvertenze per quei metodi dinamici?
Aggiorna
Il mio codice di esempio:
@interface SomeClass : NSObject
{
}
- (void)mssageA:(id)value1 additionalOption:(id)value2;
- (void)mssageB:(id)value1 additionalOption:(id)value2;
- (void)mssageC:(id)value1 additionalOption:(id)value2;
@end
@implementation SomeClass
- (id)forwardingTargetForSelector:(SEL)aSelector
{
if(aSelector==@selector(mssageA:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageB:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageC:additionalOption:)) return innerComponentInstance;
return [super forwardingTargetForSelector:aSelector];
}
@end
Soluzione
Penso che un implementazione del protocollo potrebbe essere la seguente
@protocol SomeProtocol
@optional
- (void)mssageA:(id)value1 additionalOption:(id)value2;
- (void)mssageB:(id)value1 additionalOption:(id)value2;
- (void)mssageC:(id)value1 additionalOption:(id)value2;
@end
@interface SomeClass : NSObject <SomeProtocol>
{
}
@implementation SomeClass
- (id)forwardingTargetForSelector:(SEL)aSelector
{
if(aSelector==@selector(mssageA:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageB:additionalOption:)) return innerComponentInstance;
if(aSelector==@selector(mssageC:additionalOption:)) return innerComponentInstance;
return [super forwardingTargetForSelector:aSelector];
}
@end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow