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。
从此,整个世界安静了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容