了解清除警告
前言:了解清除警告的一些内容
最近做的项目中的第三方的内容总是有一些警告 ,感觉对于自己写的代码部分的定位很难找,而且有点看着不爽。看见了几篇文章,地址留在下边,以后有需要再了解更多。
我所做的事情:看完了相关的文章后,目前我只是在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 - 来区分开不同的方法的分界线 标识不同的区域不同的功能
参考网址:
部分警告:Which Clang Warning Is Generating This Message?
CocoaPods禁止显示警告inhibit_all_warnings
先写到这么多,以后再更新
如有问题,敬请指正;
如需转载,请注明出处,谢谢!
我会不定期分享 iOS 相关技术文章