iOS开发消除编译警告

iOS开发中的警告

开发过程中总会不可避免的产生各种警告,警告值得开发者严禁对待。
比如:

  • -Wnonnull警告 表示需要非空的入参
  • -Wunused-const-variable警告 表示该const修饰对象没被任何地方使用
  • -Wunused-variable警告 表示该对象没被任何地方使用
  • -Wunguarded-availability警告 表示该API已被弃用,请使用最新版本的API 等等

但是,大多数警告能被解决后,但仍然有少部分警告是不方便、或者不能被解决的,尤其当开发SDK,或者组件模块的时候我们希望不必要的警告能被消除,不计入编译后的警告个数等,这时候苹果为我们提供了消除了警告的方法:
我们只需要将引起警告的代码用

#pragma clang diagnostic push
#pragma clang diagnostic ignored "警告的类型"

#pragma clang diagnostic pop

包括起来就行啦
如:

    NSInteger count = 1;
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wformat"
    NSLog(@"%d",count);
#pragma clang diagnostic pop

那么如何获取警告的类型呢
build -> 找到buildtime界面 -> 选中对应的警告 -> 右键 -> 选择Reveal in Log -> 就能找到对应的警告类型了。

build警告界面.png

![警告方法.png](https://upload-images.jianshu.io/upload_images/1798452-eec6709d4dffa4dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

cocoPods第三方警告的消除

如果想关闭第一个cocoPods引入的第三方库引起的警告,可以找到Pod对应的target在编译参数中添加 -w。注意,是小写-w, 大写-W,则是显示所有警告


Pods警告.png

参考:iOS开发如何消除黄色感叹号

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 1,979评论 0 3
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    爱运动爱学习阅读 15,468评论 3 114
  • 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak、循环引用、不能执行之类的警告。 有代码洁癖的孩子...
    磁针石阅读 9,625评论 0 15
  • 从6月1日跟蕙姐和梁师兄等人发起大河读书会晨跑计划以来,到今天我已经坚持了22天时间。早起和晨跑已经成为我...
    奔跑的信风阅读 745评论 2 2
  • 很后悔现在才看到《横向领导力》一书,如果刚毕业的时候看到,就不会走那么多弯路。不过现在看完给我最大的收获是,总结过...
    小人物的狂想曲阅读 324评论 1 4
  • 一天,七岁的英英来爷爷家过暑假。一天阳光明媚,万里无云,天气也不是很热。英英来到小院里玩耍,这是从树上掉下...
    SUPER梅子青时阅读 107评论 0 0
  • 记2017.6.17 于上海 第一次驻足这个城市,想看看属于它的印记。约了一个未曾谋面的朋友,推荐我一起去了...
    郝婷婷bertha阅读 142评论 0 0
  • 我不知道 如果有来生 还会不会选你作陪 亦不知道 你会不会还选择我 这 大概就是我们 那四分之一的爱情 如果真的有...
    婉言1228阅读 266评论 0 4