当前位置:首页 > 服务端 > iOS XCode启用/关闭Clang Warnings

iOS XCode启用/关闭Clang Warnings

原创Blog。转载请注明出处
blog.csdn.net/hello_hwc
欢迎关注我的iOS SDK具体解释专栏,这里有非常多基础的文章。
http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html


前言:warnings是编码中非常重要的一个环节,编译器给出合理的warning能帮助开发人员找到自己代码的问题,防止非常多bug产生。
默认用XCode创建一个project,会自己主动开启一些重要的warnings。可是很多其它的时候,我们须要编译器更完整的提醒。

iOS开发採用Clang编译器。


默认的Warning能够在Build Settings里找到

在search里搜索Warnings,就能够看到如图,这是为全部语言开启的warnings
iOS XCode启用/关闭Clang Warnings _ JavaClub全栈架构师技术笔记

当然。也能够为不同语言开启warning,也在Build Settings里
iOS XCode启用/关闭Clang Warnings _ JavaClub全栈架构师技术笔记

可是。这样一个个的开启关闭定制化非常好。有时候我们仅仅须要开启全部或者开启全部重要的warnings就可以
这时候,进入
iOS XCode启用/关闭Clang Warnings _ JavaClub全栈架构师技术笔记
能够加入一些build flag来启用警告。基本的就是三个

1.-Wall Clang觉得自己能够准确报出的警告
2. -Wextra额外的苛刻的警告。这些警告不一定会造成错误。比如假设使用这个flag,把singned 赋值给unsigned就会触发警告,而大多数时候这样赋值是没问题的。


3.-Weverything 全部警告

一般的项目都是开启-Wall-Wextra两个警告来保证没有严重错误。当然。假设有些明显的不会出错。能够用关闭某个或者某些警告。

-Wall -Wno-unused-variable //启用Wall可是剔除unused-variable

用语句强制开启或者关闭某个警告

强制开启一个警告

#warning "This method can not be used"

强制开启一个错误

#error "You must add this key,or you will fail"

iOS XCode启用/关闭Clang Warnings _ JavaClub全栈架构师技术笔记

强制关闭一个警告
比如
这里会出现警告test这个selector没有实现

[self performSelector:@selector(test) withObject:nil];

强制关闭这个警告

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
    [self performSelector:@selector(test) withObject:nil];
#pragma clang diagnostic pop

经常使用的CLang Warning

  • Wall
  • Wbad-function-cast
  • Wcast-align
  • Wconversion
  • Wdeclaration-after-statement
  • Wdeprecated-implementations
  • Wextra
  • Wfloat-equal
  • Wformat=2
  • Wformat-nonliteral
  • Wfour-char-constants
  • Wimplicit-atomic-properties
  • Wmissing-braces
  • Wmissing-declarations
  • Wmissing-field-initializers
  • Wmissing-format-attribute
  • Wmissing-noreturn
  • Wmissing-prototypes
  • Wnested-externs
  • Wnewline-eof
  • Wold-style-definition
  • Woverlength-strings
  • Wparentheses
  • Wpointer-arith
  • Wredundant-decls
  • Wreturn-type
  • Wsequence-point
  • Wshadow
  • Wshorten-64-to-32
  • Wsign-compare
  • Wsign-conversion
  • Wstrict-prototypes
  • Wstrict-selector-match
  • Wswitch
  • Wswitch-default
  • Wswitch-enum
  • Wundeclared-selector
  • Wuninitialized
  • Wunknown-pragmas
  • Wunreachable-code
  • Wunused-function
  • Wunused-label
  • Wunused-parameter
  • Wunused-value
  • Wunused-variable
  • Wwrite-strings

困难模式

所谓的困难模式就是开启全部警告。而且把警告当作error。这意味着,仅仅要另一个警告存在,那么程序将不能编译执行。
iOS XCode启用/关闭Clang Warnings _ JavaClub全栈架构师技术笔记


參考链接
http://onevcat.com/2013/05/talk-about-warning/
http://programmers.stackexchange.com/questions/122608/clang-warning-flags-for-objective-c-development
http://amattn.com/p/better_apps_clang_weverything_or_wall_is_a_lie.html
http://nshipster.cn/clang-diagnostics/

作者:mengfanrong
来源链接:https://www.cnblogs.com/mengfanrong/p/5172950.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/124597.html

标签: unused variable
分享给朋友:

“iOS XCode启用/关闭Clang Warnings” 的相关文章

Logback日志框架2022年05月19日 20:04:05
Logger的级别2022年05月19日 20:04:12
Java日志框架那些事儿2022年05月19日 20:04:37
Python 散列表查询2022年05月20日 21:28:09
跨平台技术栈2022年06月06日 12:57:33
Unity3D与iOS的交互2022年06月07日 12:34:54