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
È stato utile?

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
scroll top