忽略警告
精确忽略指定代码块的警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "警告名称"
// 被夹在这中间的代码针对于此警告都会忽视不显示出来
//常见警告的名称
//1.声明变量未使用 "-Wunused-variable"
//2.方法定义未实现 "-Wincomplete-implementation"
//3.未声明的选择器 "-Wundeclared-selector"
//4.参数格式不匹配 "-Wformat"
//5.废弃掉的方法 "-Wdeprecated-declarations"
//6.不会执行的代码 "-Wunreachable-code"
//7.忽略在arc 环境下performSelector产生的 leaks 的警告 "-Warc-performSelector-leaks"
//8.忽略类别方法覆盖的警告 "-Wobjc-protocol-method-implementation"(修复开源库bug,覆盖开源库方法时会用到)
#pragma clang diagnostic pop
大范围忽略指定警告
不推荐,警告放开有利于及时查找问题,大范围忽略警告容易导致一些隐匿性的错误难以定位
可以在pch等具有大范围作用域的头文件中包含:
#pragma clang diagnostic ignored "警告名称"
如果剔除了push与pop 则后面所有的代码都具有强制消除警告作用
添加警告
- 普通警告
#warning TODO
- 提示旧接口废除
- (void)addTapAction:(SEL)tapAction target:(id)target NS_DEPRECATED_IOS(2_0, 4_0);
- 带信息的警告
- (void)addTapAction:(SEL)tapAction target:(id)target __attribute__((deprecated("这个接口已废弃,建议使用...代替")));
//系统提供了宏可以简单使用
- (void)addTapAction:(SEL)tapAction target:(id)target DEPRECATED_MSG_ATTRIBUTE("这个接口已废弃,建议使用...代替");
参考文章:
Xcode警告忽略
iOS警告收录及科学快速的消除方法