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 -> 就能找到对应的警告类型了。
cocoPods第三方警告的消除
如果想关闭第一个cocoPods引入的第三方库引起的警告,可以找到Pod对应的target在编译参数中添加 -w。注意,是小写-w, 大写-W,则是显示所有警告