iOS警告消除

背景:目前iOS 项目警告达到了400多个,夹杂着第三方的, 自己项目代码的混在一起,根本无法及时关注到是否是由于自己使用不当而造成又增加了几个警告,或是潜在的bug。
此次启动项目警告大扫除,针对不同类型的警告该如何解决,且看一一道来。
一:图片类型警告
warning: Missing Content: The file "fork@3x.png" for the image set "fork" does not exist
只添加了@2x的图片,而没有添加@3x的图片。 可能是觉得没必要添加@3x的图片,或是历史遗留未添加。
此时,我的做法是将contentjson中对应 @3x图片的filename 删除。 即告知他不需要@3x图片
{
"idiom" : "universal",
"filename" : “fork@3x.png",
"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更新后,可能又引入了新的警告类型。需要对应修改


image.png

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

image.png

2.对应转换,举例释义


image.png

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


image.png

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


image.png

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,397评论 8 183
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,672评论 4 61
  • 1. 骑行 我在马路边骑着摩拜 树荫斑驳 微风迎面扑来 一路蝉鸣 2. 扫除 小区楼下的人行道上 一位头戴遮阳帽的...
    四知录阅读 2,118评论 0 1
  • 身体才是革命的本钱。谈恋爱伤神,伤身,伤肾。对象,选择好了,每天都会感到欣慰,选择不好,每天都需要你安慰。
    哪一站那一战阅读 2,948评论 0 5
  • 从2008年到现在,我经历着生活里的酸甜苦辣。空间里的记录自己都忘却了,今天不经意的翻阅让我想起了好多事,好多心情...
    那山那水那一片天阅读 1,481评论 0 1

友情链接更多精彩内容