How to suppress Objective-C warning “incomplete implementation of class 'SomeClass'”?
-
27-09-2019 - |
Question
I have a class which is routing many messages into inner component instance. So the class have only method definition, but no implementation. How can I suppress these warnings for those dynamic methods?
Update
My code sample:
@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
Solution
I think a protocol implementation could look like this
@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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow