1

前言

无论如何,工程与代码必须保持适度的整洁与优雅。以前就有Treat Warning as error的观点,一些IDE都有内置支持这一选项。Xcode戳这里

但话分两头,对于某些长期不会更改或者第三方库的Warning,我们应该及时地将其屏蔽,以免将重要的Warning淹没。

方法一

#pragma clang diagnostic ignored

clang可以手动屏蔽warning,具体方法如下:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
//your code where might produce warnings
#pragma clang diagnostic pop

引号中-Wobjc-protocol-method-implementation表示你要屏蔽的Warning类型。
常见的Warning类型还有:
-Wobjc-protocol-method-implementation -Wunused-variable
-Wno-unused-parameter

如何查看Warning的编译Flag

有时候我们需要或者该Warning的编译Flag,方法如下:

图片描述
对该Warning点击鼠标右键,选择Reveal in Log

图片描述
如上图所示,你可以看到这个Warning的编译Flag。

方法二

对于Cocoapods依赖的三方库产生的Warning。在Podfile中加入如下内容:

pod 'SSZipArchive', :inhibit_warnings => true

具体参考Cocoapods 文档
Cocoapods doc

方法三

屏蔽一些特定的Warning

  • unused var

__unused int i;

unused parameter

总述

目前这是我知道的两种屏蔽Warning的两种方案。当然,programmer必须严肃对待Warning。Treat warning as error!

参考

#pragma
clang文档 关于warning的选项

原作写于segmentfault 链接


canopus4u
618 声望50 粉丝