去掉xcode中警告的一些经验


1、编译时,编译警告忽略掉某些文件

      只需在在文件的Compiler Flags 中加入 -w 参数,例如:


2、编译时,编译警告忽略掉某段代码

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Wmultichar"

   char b = 'df'; // no warning.

#pragma clang diagnostic pop

参考网址:http://stackoverflow.com/questions/7897429/ignore-all-warnings-in-a-specific-file-using-llvm-clang/8087544#8087544

3、编译时,analyse警告忽略掉某些文件

   只需在文件的Compiler Flags 中加入 -Xanalyzer -analyzer-disable-checker 参数,例如:

参考网址:http://stackoverflow.com/questions/7897429/ignore-all-warnings-in-a-specific-file-using-llvm-clang


4、编译时,analyse警告忽略掉某段代码

#ifndef __clang_analyzer__

      // Code not to be analyzed

#endif

  参考网址:http://stackoverflow.com/questions/5806101/is-it-possible-to-suppress-xcode-4-static-analyzer-warnings


5、项目使用arc以后,调用[someTarget performSelector:someAction]会报警告,有如下三种解决方法:

     a、当ARC检查警告时,忽略掉该段代码            

    #pragma clang diagnostic push    

   #pragma clang diagnostic ignored "-Warc-performSelector-leaks"

       [object performSelector:action];    

   #pragma clang diagnostic pop

   

    对于多处出现该警告时,可以定义一个宏来替换,比如

#define NoWarningPerformSelector(target, action, object) \

_Pragma("clang diagnostic push") \

_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \

[target performSelector:action withObject:object]; \

_Pragma("clang diagnostic pop") \

      b、使用objc_msgSend函数进行替换

          #import <objc/message.h>

          objc_msgSend(object, action);


      c、在该代码文件的的Compiler Flags 中加入-Wno-arc-performSelector-leaks 参数


  参考网址:http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknown/7073761#7073761


6、对于category覆盖类里面方法导致的警告,可能就要修改源代码了。因为苹果是不建议在category中覆盖类方法的,以为这种行为会产生未知的结果。

If the name of a method declared in a category is the same as a method in the original class, or a method in another category on the same class (or even a superclass), the behavior is undefined as to which method implementation is used at runtime.


参考网址:http://stackoverflow.com/questions/13388440/xcode-4-5-warns-about-method-name-conflicts-between-categories-for-parent-child

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html  (Avoid Category Method Name Clashes段落)


7、对于某个类中存在方法名和系统某个类的方法名相同的情形,如果你在此类的静态方法中使用self来调用该方法,可能引发警告,所以尽量避免此种情况。比如

我自定义一个类 RequestTask 继承自NSObject,里面有个静态方法:

+ (id)taskWithRequest:(BaseRequest *)request delegate:(id)delegate


{


    return [[self alloc] initWithRequest:request delegate:delegate];


}

而在我的RequestTask确实有一个方法的定义为:

- (id)initWithRequest:(BaseRequest *)req delegate:(id)delegate;

理论上讲这个是没有任何问题的,但是编译器编译的时候却有一个警告,因为NSURLConnection有一个相同的方法,编译器认为我调用的是NSURLConnection类的该方法,参数类型不对报错。

所以此种情况,我们应该避免直接在静态方法中使用self调用类的实例方法。


8、当使用两个不匹配的enum类型或者enum类型默认也是会报警告的,此种情况可以通过直接强制类型转换解决,也可以在编译器中规避掉此种警告。例如:


9、当Enum类型和Enum类型中未定义的整形范围进行比较时,编译器也会给警告。此种解决方法目前查到的就是强制类型转化(如果有其他方式,请看到的ggjj告诉我一下,再此谢过了)

转载于:https://www.cnblogs.com/zsw-1993/p/4879405.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

富士施乐3065扫描教程_全面支持IT国产化 富士施乐70款机型获统信UOS兼容认证

最近&#xff0c;富士施乐&#xff08;中国&#xff09;有限公司宣布共70款机型获得国产操作系统统信UOS的兼容认证&#xff0c;其中包括新一代ApeosPort旗舰智能型数码多功能机、多功能一体机/打印机、生产型数字印刷系统。这是继获得中标麒麟、龙芯和兆芯兼容认证后&#xff…

Flash系统字体中的中文字体问题

在flash中使用as来改变textfield的中文字体 &#xff0c;遇到发布版本超过10.2的时候&#xff0c;会悲剧&#xff01;不支持使用中文名称来改变字体。 解决办法&#xff1a;1&#xff09;使用英文名称。2&#xff09;发布的版本低于10.2 label:TextField new TextField(); for…

第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数

标题线性位置不变退化估计退化函数采用观察法估计退化函数采用试验法估计退化函数采用建模法估计退化函数运动模糊函数OpenCV Motion Blur在这一节中&#xff0c;得到的结果&#xff0c;有些不是很好&#xff0c;我需要再努力多找资料&#xff0c;重新完成学习&#xff0c;如果…

视觉感受排序算法

1. 快速排序 介绍&#xff1a; 快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下&#xff0c;排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较&#xff0c;但这种状况并不常见。事实上&#xff0c;快速排序通常明显比其他Ο(n log n) 算法更快&…

python如何自定义函数_python如何自定义函数_后端开发

c语言特点是什么_后端开发 c语言特点是&#xff1a;1、语言简洁、紧凑&#xff0c;使用方便、灵活&#xff1b;2、运算符丰富&#xff1b;3、数据结构丰富&#xff0c;具有现代化语言的各种数据结构&#xff1b;4、具有结构化的控制语句&#xff1b;5、语法限制不太严度格&…

js/css 检测移动设备方向的变化 判断横竖屏幕

js&#xff0f;css 检测移动设备方向的变化 判断横竖屏幕 方法一&#xff1a;用触发手机的横屏和竖屏之间的切换的事件 window.addEventListener("orientationchange", function() { // 宣布新方向的数值 alert(window.orientation); }, false); // 方法二&#xff1…

第5章 Python 数字图像处理(DIP) - 图像复原与重建14 - 逆滤波

标题逆滤波逆滤波逆滤波 逆滤波 图像的退化函数已知或者由前面的方法获取退化函数&#xff0c;则可以直接逆滤波 F^(u,v)G(u,v)H(u,v)(5.78)\hat{F}(u,v) \frac{G(u,v)}{H(u,v)} \tag{5.78}F^(u,v)H(u,v)G(u,v)​(5.78) F^(u,v)F(u,v)N(u,v)H(u,v)(5.79)\hat{F}(u,v) F(u, …

SetFormFullScreen()窗体全屏显示

{让窗体全屏显示} //SetFormFullScreen(Form1); procedure SetFormFullScreen(Form:TForm); begin Form.BorderStyle:bsNone; Form.WindowState:wsMaximized; Form.Color:clBlack; end; 通过 为知笔记 发布转载于:https://www.cnblogs.com/xe2011/archive/2012/07/26/2609327.h…

表示自己从头开始的句子_微信拍一拍后缀幽默回复有趣的句子 拍了拍唯美内容文案...

阅读本文前&#xff0c;请您先点击上面的“蓝色字体”&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都会有分享&#xff0c;都是免费订阅&#xff0c;请您放心关注。注图文来源网络&#xff0c;侵删 …

HoloLens开发手记 - Unity之Tracking loss

当HoloLens设备不能识别到自己在世界中的位置时&#xff0c;应用就会发生tracking loss。默认情况下&#xff0c;Unity会暂停Update更新循环并显示一张闪屏图片给用户。当设备重新能追踪到位置时&#xff0c;闪屏图片会消失&#xff0c;并且Update循环还会继续。 此外&#xff…

运维学python用不上_不会Python开发的运维终将被淘汰?

简介 Python 语言是一种面向对象、直译式计算机程序设计语言&#xff0c;由 Guido van Rossum 于 1989 年底发明。Python 语法简捷而清晰&#xff0c;具有丰富和强大的类库&#xff0c;具有可扩展性和可嵌入性&#xff0c;是现代比较流行的语言。最流行的语言 IEEE Spectrum 的…

windows驱动开发详解学习笔记

1. windows驱动分两类&#xff0c;NT式驱动和WDM驱动&#xff0c;后者支持即插即用&#xff1b; 2. DriverEntry是入口函数&#xff0c;传入参数&#xff1a;pDriverObject由IO管理器传入&#xff1b; 3. WDM驱动中&#xff0c;AddDevice创建设备对象&#xff0c;由PnP管理器调…

第5章 Python 数字图像处理(DIP) - 图像复原与重建15 - 最小均方误差(维纳)滤波

标题最小均方误差&#xff08;维纳&#xff09;滤波最小均方误差&#xff08;维纳&#xff09;滤波 目标是求未污染图像fff的一个估计f^\hat{f}f^​&#xff0c;使它们之间的均方误差最小。 e2E{(f−f^)2}(5.80)e^2 E \big\{(f - \hat{f})^2 \big\} \tag{5.80}e2E{(f−f^​)2…

入网许可证_入网许可证怎么办理,申请流程

移动通信系统及终端投资项目核准的若干规定》的出台&#xff0c;打开了更多企业进入手机业的大门&#xff0c;然而一些企业在关心拿到手机牌照后&#xff0c;是不是就是意味了拿到入网许可证&#xff0c;就可以上市销售。某些厂商认为:"手机牌照实行核准制&#xff0c;意味…

OpenGL编程低级错误范例手册

看到一篇OpenGL编程的错误总结&#xff0c;对我初学来说应该比较有用&#xff0c;先保留&#xff0c;嘿嘿... 谢谢原文作者的贡献&#xff1a;http://www.cnitblog.com/linghuye/archive/2005/08/13/1845.html 1.没有glDisable(GL_TEXTURE_2D),导致基本几何作图全部失败。 2.镜…

C/C++ 中变量的声明、定义、初始化的区别

今天突然思考到这样的一个问题&#xff0c;发现已经在学习或者编写程序的时候压根就没有注意到这些&#xff0c;经过比较这些还是有很大的区别的。 int i;//声明 不分配地址空间 int j1&#xff1b;//转载于:https://www.cnblogs.com/kuoyan/p/3687391.html

使用python matplotlib画图

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/52577631 未经博主允许不得转载。 博主地址是&#xff1a;http://blog.csdn.net/freewebsys 1&#xff0c;关于 非常简单的画图类库。 简直就是matlab的命令了。 python设计都是非常简单的。 在使用pyt…

碧桂园博智林机器人总部大楼_碧桂园职院新规划曝光!将建机器人实训大楼、新宿舍、水幕电影等...

4月10日&#xff0c;广东碧桂园职业学院召开院务(扩大)会议&#xff0c;学院党政班子领导和相关负责人出席。会议集中观看了学院四期工程的规划区介绍&#xff0c;并就具体方案的可行性进行了研讨。在碧桂园集团董事局主席杨国强先生的带领下&#xff0c;碧桂园职院正紧随集团产…

第5章 Python 数字图像处理(DIP) - 图像复原与重建16 - 约束最小二乘方滤波、几何均值滤波

标题约束最小二乘方滤波几何均值滤波约束最小二乘方滤波 F^(u,v)[H∗(u,v)∣H(u,v)∣2γ∣P(u,v)∣2]G(u,v)(5.89)\hat{F}(u,v) \bigg[\frac{H^*(u,v)}{|H(u,v)|^2 \gamma |P(u,v)|^2} \bigg]G(u,v) \tag{5.89}F^(u,v)[∣H(u,v)∣2γ∣P(u,v)∣2H∗(u,v)​]G(u,v)(5.89) P(u,…

securecrt是什么工具_比较一下几款常用的SSH工具

WX众号&#xff1a;基因学苑Q群&#xff1a;32798724更多精彩内容等你发掘&#xff01;编者按工欲善其事&#xff0c;必先利其器。作为生物信息分析人员&#xff0c;每天都需要通过SSH工具远程登录服务器&#xff0c;那么使用一款高效的连接工具就很有必要。这次我们来点评一下…