您的位置:首页 > 其它

#pragma 处理警告 clang diagnostic 的使用

2017-10-22 14:39 351 查看
首先#pragma在本质上是声明,常用的功能就是注释,尤其是给Code分段注释;而且它还有另一个强大的功能是处理编译器警告,但却没有上一个功能用的那么多。

clangdiagnostic是#pragma第一个常用命令:

#pragmaclangdiagnosticpush
#pragmaclangdiagnosticignored"-相关命令"
//你自己的代码
#pragmaclangdiagnosticpop

常见的用法

1.方法弃用告警

#pragmaclangdiagnosticpush
#pragmaclangdiagnosticignored"-Wincompatible-pointer-types"
//
#pragmaclangdiagnosticpop


2.不兼容指针类型

#pragmaclangdiagnosticpush
#pragmaclangdiagnosticignored"-Wincompatible-pointer-types"
//
#pragmaclangdiagnosticpop


3.循环引用

//completionBlockismanuallynilledoutinAFURLConnectionOperationtobreaktheretaincycle.
#pragmaclangdiagnosticpush
#pragmaclangdiagnosticignored"-Warc-retain-cycles"
self.completionBlock=^{
...
};
#pragmaclangdiagnosticpop


4.未使用变量

#pragmaclangdiagnosticpush
#pragmaclangdiagnosticignored"-Wunused-variable"
inta;
#pragmaclangdiagnosticpop


5.未使用default

#pragmaclangdiagnosticpush
#pragmaclangdiagnosticignored"-Wcovered-switch-default"
//switch(style){
//caseUITableViewCellStyleDefault:
//caseUITableViewCellStyleValue1:
//caseUITableViewCellStyleValue2:
//caseUITableViewCellStyleSubtitle:
////...
//default:
//return;
//}
#pragmaclangdiagnosticpop



参考链接:

http://nshipster.cn/pragma/

http://nshipster.com/clang-diagnostics/

http://fuckingclangwarnings.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: