了解清除警告

前言:了解清除警告的一些内容

最近做的项目中的第三方的内容总是有一些警告 ,感觉对于自己写的代码部分的定位很难找,而且有点看着不爽。看见了几篇文章,地址留在下边,以后有需要再了解更多。

我所做的事情:看完了相关的文章后,目前我只是在pod file里边加上了 inhibit_all_warnings!

  到项目所在的路径下,重新执行了pod install

  之后果然项目中的通过Cocoapods引入的第三方的警告的内容都消失了

  相关的警告的更细节的内容以后有需要再看

其实我们平时使用的第三方中也有很多都用到了消除警告的方式

大概的形式大致是

 

AFN中用到了多处消除警告的地方

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu"
            dispatch_async(self.completionQueue ?: dispatch_get_main_queue(), ^{
                failure(nil, serializationError);
            });
#pragma clang diagnostic pop

#import "UIScrollView+MJExtension.h"中有这么几行代码

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability-new"

中间是要忽略警告的代码

#pragma clang diagnostic pop

 

SDWebImageDownloader中有这几行代码消除警告的

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
        id activityIndicator = [NSClassFromString(@"SDNetworkActivityIndicator") performSelector:NSSelectorFromString(@"sharedActivityIndicator")];
#pragma clang diagnostic pop

#pragma
clang diagnostic push  //固定形式 诊断入栈 下边的内容知道pop 警告都被忽略了
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"  //这里是警告的类型  要忽略的诊断的类型 id activityIndicator = [NSClassFromString(@"SDNetworkActivityIndicator") performSelector:NSSelectorFromString(@"sharedActivityIndicator")];  //这里是要忽略的警告的代码 #pragma clang diagnostic pop  //固定形式 诊断出栈 检查警告的形式从此又开始正常


push 消除警告

在此声明警告相关问题

然后pop 消除警告

有点警告有效范围入栈出栈的意思

之前其实自己写代码其实基本上就是写#pragma mark - 来区分开不同的方法的分界线 标识不同的区域不同的功能

参考网址:

#pragma

iOS清除代码警告

预处理指令#pragma

部分警告:Which Clang Warning Is Generating This Message?

CocoaPods禁止显示警告inhibit_all_warnings

 

先写到这么多,以后再更新

如有问题,敬请指正;

如需转载,请注明出处,谢谢!

 

posted on 2018-03-19 22:48  ITCoderW  阅读(594)  评论(0编辑  收藏  举报

导航