How to get rid of the 'undeclared selector' warning How to get rid of the 'undeclared selector' warning objective-c objective-c

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]];}