java洁癖_干掉 Warnings(洁癖篇)

场景

事情是这样的,今天心血来潮想把工程中使用了苹果已弃用方法后得到的警告处理一下,就是这样一段代码,适配 iOS6是很可悲,我知道,你们别说了5555,上个皂片先看下

bd5e7c149bd59c5bac76baa925fcbafd.png

如果要适配低版本,这样的警告应该不少,每次 Build 的时候就感觉它在对我说:我就喜欢你看我不爽又干不掉我的样子。我这暴脾气,赶了好久的版本,好不容易得点空,必须干掉

其实很多东西都是早就有了解决办法,需要我们去发现而已

代码块处理

BOOL is_iOS6 = [[[UIDevice currentDevice] systemVersion] floatValue] < 7.0f;

if (is_iOS6) {

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Wdeprecated-declarations"

label.textAlignment = UITextAlignmentCenter;

#pragma clang diagnostic pop

}

办法很简单,但是我后来就在想,那么第一个发现*"-Wdeprecated-declarations"*这个关键字的是谁呢,遇到别的 warning 是不是也有这种解决办法, 我再次在网上search, 果然是从 Apple 得到的信息,点击警告信息,右键选择 Reveal In Log, 就可以看到警告的详细信息

e875efb2554430faf06a505d1cc245e4.png

中括号中的 -Wdeprecated-declarations 便是我们想要得到的信息了

62af9eedfaba97d977d874049998b5f5.png

知道如果找到关键字之后就容易了,以后遇到的 warning 又明知干不掉的时候就用这种方法隐藏即可,是不是很方便呢。

通用格式

#pragma clang diagnostic push

#pragma clang diagnostic ignored "上文得到的错误信息"

// 代码块

#pragma clang diagnostic pop

但是有时候在一个文件中,有很多重复的这种 warning,多见第三方库,一个个改未免太麻烦,所以可以对某一个文件隐藏所有这类 warning。

文件处理

在 Compile Sources 设置某个文件的 Compiler Flags

得到的 warning 信息是 -Wdeprecated-declarations 需要改成 -Wno-deprecated-declarations

即所有的这类报错都是 -W错误信息 的格式,我们需要将 -W 替换成 -Wno- 即告诉编译器这个文件的这个错误不在提示警告,可以添加多个

cec87d8bd007b2b3db7b7da27e2bfbe0.png

这是对整个文件的 warning 进行隐藏,有时候工程中这类 warning 我们都不想看到,一个个设置也是怪累的,所以也可以对工程进行处理

工程处理

在 PROJECT -> Build Settings -> Apple LLVM 6.1 - Custom Complier Flags 中的Other Warning Flags 一栏设置即可

cfbcddb991d2e01118780b2bb49d4660.png

来源:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值