How to get rid of the 'undeclared selector' warning
Another option would be to disable the warning with:
#pragma GCC diagnostic ignored "-Wundeclared-selector"
You can place this line in the .m file where the warning occurs.
Update:
It works also with LLVM like this:
#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wundeclared-selector"... your code here ...#pragma clang diagnostic pop
Have a look at NSSelectorFromString.
SEL selector = NSSelectorFromString(@"setError:"); if ([self respondsToSelector:selector])
It will allow you to create a selector at runtime, instead of at compile time through the @selector
keyword, and the compiler will have no chance to complain.
I think this is because for some odd reason the selector isn't registered with the runtime.
Try registering the selector via sel_registerName()
:
SEL setErrorSelector = sel_registerName("setError:");if([self respondsToSelector:setErrorSelector]) { [self performSelector:setErrorSelector withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];}