使用pragma消除警告 (绝不可强行消除,因为有可能是个运行时错误)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "命令字符串"
代码块
#pragma clang diagnostic pop 1. "-Warc-performSelector-leaks" performselector可能造成内存泄漏
SEL sel = @selector(gl_getImage:);
[self performSelector:sel withObject:nil];
以上警告也可使用消除
IMP imp = [app methodForSelector:sel];
void (*func)(id , SEL ,NSInteger) = (void *)imp;
func(app,selector,0); 2. "-Wreceiver-is-weak" 调用者接收者是weak属性 3. "-Wunused-variable" 变量未使用
或者 __unused int m = 2; //Unused variable 'm' 4. "-Wdeprecated-declarations" 方法弃用
[UIAlertView alertView........] 5. "-Warc-retain-cycles" 循环引用
while(true){} 6. "-Wincompatible-pointer-types" 指针不兼容的 7. "-Wundeclared-selector" 方法在本类中未申明
eg. SEL sel = @selector(gl_getImage)
不过以上方法导致的警告也可使用runtime机制消除
SEL sel = sel_registerName("gl_getImage:")
SEL sel = NSSelectorFromString(@"gl_getImage:");
8. "-Wunreachable-code" 代码将永不被执行
NSLog(@"m");
return;
NSLog(@"n"); //Code will never be executed 如果想将项目中所有某类型的警告都消除
11. 配置文件 buildSettings->Other Warning Flags
加入配置字符
11.1 code will never be executed
-Wno-unreachable-code 全局禁用警告
-Wunreachable-code 全局启用警告
11.2 Unused Entity Issue / unused function 'xxxxx'
-Wno-unused-function 全局禁用
-Wunused-function 全局启用
11.3 ......

pragma警告处理的更多相关文章

  1. 【C#版本详情回顾】C#2.0主要功能列表

    泛型 优点:类型安全/重用代码/提升性能 应用:泛型接口.泛型类.泛型类型参数.泛型方法.泛型事件和泛型委托 命名空间:System.Collections.Generic 特性:泛型约束,defau ...

  2. 【转】各个层次的gcc警告 #pragma GCC diagnostic ignored "-Wunused-parameter" --不错

    原文网址:http://blog.csdn.net/lizzywu/article/details/9419145 各个层次的gcc警告从上到下覆盖 变量(代码)级:指定某个变量警告 int a __ ...

  3. 编译器处理警告、错误 #pragma GCC diagnostic ignored "-Wunused"

    各个层次的gcc警告从上到下覆盖 变量(代码)级:指定某个变量警告 int a __attribute__ ((unused));指定该变量为"未使用的".即使这个变量没有被使用, ...

  4. #pragma 处理警告 clang diagnostic 的使用

    首先#pragma在本质上是声明,常用的功能就是注释,尤其是给Code分段注释:而且它还有另一个强大的功能是处理编译器警告,但却没有上一个功能用的那么多. clang diagnostic 是#pra ...

  5. msvc/gcc:中用#pragma指令关闭特定警告(warning)

    在使用一些第三方库或源码的时候,经常会遇到编译时产生warnings情况,这些warning不是我们自己的代码产生的,当然也不好去修改,但每次编译都显示一大堆与自己代码无关的警告也着实看着不爽,更麻烦 ...

  6. 预处理指令#pragma

    #pragma介绍 #pragma是一个预处理指令,pragma的中文意思是『编译指示』.它不是Objective-C中独有的东西(貌似在C/C++中使用比较多),最开始的设计初衷是为了保证代码在不同 ...

  7. iOS警告收录及科学快速的消除方法

    来自: http://www.cnblogs.com/dsxniubility/p/4757760.html iOS警告收录及科学快速的消除方法     前言:现在你维护的项目有多少警告?看着几百条警 ...

  8. xcode 消除警告

    项目中引用大量的第三方代码时,这些代码很复杂,不要轻易去改动它,如果编译产生很多警告,该如何消除呢? 1. 最直接.最一劳永逸.最安全的方式,直接找到警告的那段代码,改为不警告.这个方式最安全. 可是 ...

  9. 关于 Pragma 的使用总结

    注意:此文乃是本人阅读多个博客文章后,记下的个人认为重点的地方. 参考文章: 参考1   参考2 #Pragma mark - 用于分离类中的不同功能的方法.(例如,一个 viewController ...

随机推荐

  1. SLAM+语音机器人DIY系列:(二)ROS入门——7.理解tf的原理

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  2. postgresql如何让主键自增

    法一: Sql代码 收藏代码 CREATE TABLE customers ( customerid SERIAL primary key , companyname character varyin ...

  3. LINQ之道

    提到LINQ首先我们要了解什么是委托:委托是一种引用方法的类型.一旦为委托分配了方法,委托将与该方法具有完全相同的行为.也就是说当你委托给一个人办一件事的时候,他就拥有这个能力去实现这件事,同样委托也 ...

  4. :only-child和:only-of-type选择器的比较

    :only-child 当元素是唯一的子元素,被选择. HTML代码: <body> <div class="x"> <div>第一个DIV&l ...

  5. (一) Keras 一元线性回归

    视频学习来源 https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553 笔记 环境为 an ...

  6. C#断点调试时属性get块逻辑执行多次

    上面的例中,当打断点调试时,断点断住时, Attr1属性的get块就会执行一次. 两个断点加在逻辑中对Attr1的访问,最后发现CTest get Attr1.打印了3次. 得到的结论是:多余的2次打 ...

  7. ORA-279 signalled during: alter database recover logfile

    在RMAN的RECOVER还原过程中,RMAN界面正常,但是检查.刷新告警日志,发现告警日志里面有ORA-279,如下所示: alter database recover logfile '/u06/ ...

  8. mysql解压包安装教程

    1.下载压缩包,地址1(官网下载):https://www.mysql.com/downloads/   地址2(百度网盘):https://pan.baidu.com/s/12lnpcr3thBe9 ...

  9. vue源码分析—Vue.js 源码目录设计

    Vue.js 的源码都在 src 目录下,其目录结构如下 src ├── compiler # 编译相关 ├── core # 核心代码 ├── platforms # 不同平台的支持 ├── ser ...

  10. 借助FreeHttp任意篡改http报文 (使用·实现)

    引言 FreeHttp是一个Fiddler插件借助FreeHttp您可按照您自己的设定修改请求或响应报文,这对测试及调试都非常有用 比如您发现线上页面js文件错误,直接使用规则替换新的js文件您可以在 ...