ignore Undeclared selector warnings in Xcode

在Xcode中我们经常会写如下代码

if ([someObject respondsToSelector:@selector(doSomething)])
{
    [someObject performSelector:@selector(doSomething)];
}

以上代码中,如果我们不显示的在someObject 的头文件中显式地声明 doSomething或者实现doSomething,则在 Xcode 中会提示警告:
Undeclared selector 'doSomething'但很多情况下我们并不想去声明它,此时我们可以禁用编译器的此类警告:

1.在该文件中声明:\#pragma GCC diagnostic ignored "-Wundeclared-selector"则该行之后本文件中所有的此类警告将不在显示。而编译器依然会对文件内其他代码进行警告检测,避免出现预料之外的bug。

2.只针对某几行代码忽略该警告:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
    // 需要禁用警告的代码
    if ([self respondsToSelector:@selector(doSomething)])
    {
        [self performSelector:@selector(doSomething)];
    }
#pragma clang diagnostic pop

3.整个工程忽略该警告
在工程的build Setting -> undeclared selector 设置为NO。
从此,整个世界安静了。

你可能感兴趣的:(ignore Undeclared selector warnings in Xcode)