iOS警告消除

背景:目前iOS 项目警告达到了400多个,夹杂着第三方的, 自己项目代码的混在一起,根本无法及时关注到是否是由于自己使用不当而造成又增加了几个警告,或是潜在的bug。
此次启动项目警告大扫除,针对不同类型的警告该如何解决,且看一一道来。
一:图片类型警告
warning: Missing Content: The file "[email protected]" for the image set "fork" does not exist
只添加了@2x的图片,而没有添加@3x的图片。 可能是觉得没必要添加@3x的图片,或是历史遗留未添加。
此时,我的做法是将contentjson中对应 @3x图片的filename 删除。 即告知他不需要@3x图片
{
"idiom" : "universal",
"filename" : “[email protected]",
"scale" : “3x"
}
二:引入的第三方库造成的警告
在我们的项目中,通常使用了一些第三方库,或是某些sdk所依赖的第三方库,例如百度钱包sdk(依赖了ASI,JSONKit,MBProgressHUD等),一般引入的第三方库避免去修改,可是作者已经停止更新了,当sdk升级或者是编译器升级后,这些遗留的代码可能会出现许许多多的警告,那么我们有没有办法去掉这些烦人的警告,不然一个工程几百个警告,你看着怎么都不爽吧。我们怎么去掉警告呢?
1.修改第三方库代码, 使用编译器提供的宏来包裹这段代码
pragma clang diagnostic push
pragma clang diagnostic ignored"-Wdeprecated-declarations"
//写在这个中间的代码,都不会被编译器提示-Wdeprecated-declarations类型的警告
pragma clang diagnostic pop

2.关闭某一个指定文件的某种指定类型的警告(目前消除警告使用该方法)
优点:可针对第三方库的文件进行单独忽略
缺点: 新版本系统sdk更新后,可能又引入了新的警告类型。需要对应修改


iOS警告消除_第1张图片
image.png

如何找到警告类型?
1.选中警告-reveal in log

image.png

2.对应转换,举例释义


iOS警告消除_第2张图片
image.png

3.关闭工程中指定类型的警告。 弊端:整个工程中此种类型的警告都不再提示,包括自己写的代码,所以并不推荐此种方式


iOS警告消除_第3张图片
image.png

三:项目中未合理使用造成的警告


iOS警告消除_第4张图片
image.png

四:项目中认为定义的警告,用作提示
Unused Entity Issue 人为定义的,在每个项目结束时,需要check一遍

五:第三方库引入
百度地图sdk3.3.0 版本引起警告70个,更新sdk后

你可能感兴趣的:(iOS警告消除)