instrument之Xcode Analyze 代码静态检查及问题解决
Static Code Analysis(静态代码分析)用来发现源代码潜在的错误与缺陷,源代码编译后只有在运行时有可能会产生细微的错误,他们可能难以识别和修复,所以这些潜在的威胁在开发过程中一定要尽可能清理干净,尽量编写的时候注意类似可能潜在的威胁与缺陷。击查看苹果Static Code Analysis官方介绍)
一.可以识别的问题与缺陷
.逻辑缺陷,如访问未初始化的变量和空指针 .内存管理的缺陷,如分配后的内存泄漏 .无效数据(未使用的变量)缺陷 .使用api缺陷,不遵循库或者框架的使用规则
示例:
二,操作

三,问题列表
1、Localizability Issue (Apple)
大概意思是:1、这里是非本地化的文字 2、面向用户的文本应使用本地化的字符串宏
别慌,下图是 Xcode检测到缺少本地化~~~ 请看下面解决办法
解决方法:在 Build Settings 里面找到 Missing Localizability(缺少本地化) 设置为NO,就会忽略这个问题啦, 或者 , 你也可以在应用里面进行本地化。

2、Dead store
无效数据: 意思就是有一些属性或者对象初始化了又没被使用

解决方法:去掉初始化方法,直接赋值
注释:另外一种处理方式,使用__unused注释掉
__unused NSMutableArray *array = @[@"1",@"2"]; //使用__unused或者注释掉
3、Logic error 逻辑错误
Converting a pointer value of type 'NSNumber *' to a primitive boolean value;instead,either compare the pointer to nil or call -boolValue(将类型为“NSNumber *”的指针值转换为原始布尔值; 相反,要么将指针与nil进行比较,要么调用-boolValue)
问题代码:使用NSNumber作为判断条件的时候,没有指定类型,编译器不知道怎么判断

解决办法:指定 NSNumber 对象与 nil 进行比较
4、Memory error 内存错误
nil passed to a callee that requires a non-null 1st parameter(nil传递给需要非null第一个参数的被调用者)
问题代码:param 可能为nil

解决办法:通常这种情况下,只需要添加一个非空判断,保证传入的参数不为空即可
5、Core Foundation/Objective-C

解决办法:
去掉一个“=” 号,或者把 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 提出来放 if 条件前面
instrument之Xcode Analyze 代码静态检查及问题解决的更多相关文章
- Android(Java)利用findbugs进行代码静态检查
主要介绍利用java静态代码检查工具findbugs进行代码检查,包括其作用.安装.使用.高级功能(远程review和bug同步). 虽然Android提供了Test Project工程以及instr ...
- 四种java代码静态检查工具
[转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043 1月16日厦门 OSC ...
- 代码静态检查Eclipse插件:SonarLint插件离线安装
Eclipse Version: Oxygen.3a Release (4.7.3a)Myeclipse版本: 10.7 SonarLint 插件离线安装包:org.sonarlint.eclipse ...
- C/C++代码静态检查工具Cppcheck在VS2008开发环境中的安装配置和使用
Cppcheck is an analysis tool for C/C++code. Unlike C/C++ compilers and many other analysis tools, it ...
- pylint代码静态检查
使用git-pylint-commit-hook工具 pre-commit脚本 配置文件放在仓库根目录/hooks下面 git-pylint-commit-hook --limit=9.0 --pyl ...
- JAVA代码静态检测之PMD
今天再次想启动Java代码静态检测工具的利用问题,主要再次尝试用了PMD,发现不少代码编码规范问题和好的代码建议,并学到不少自己之前没有注意到的Java方便的基础知识,感觉很不错,把相关明白的好的规则 ...
- React Native工程中TSLint静态检查工具的探索之路
建立的代码规范没人遵守,项目中遍地风格迥异的代码,你会不会抓狂? 通过测试用例的程序还会出现Bug,而原因仅仅是自己犯下的低级错误,你会不会抓狂? 某种代码写法存在问题导致崩溃时,只能全工程检查代码, ...
- QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查
QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查 打开你的工程,点击Analyze -> Clang-Tidy and CLazy 选择你想分析的 cp ...
- maven配置checkstyle插件对代码规范进行静态检查
checkstyle配置的官方网站:http://checkstyle.sourceforge.net/config.html (1)新建maven项目,配置checkstyle插件 pom.xml ...
随机推荐
- P5290 [十二省联考2019]春节十二响
题目地址:P5290 [十二省联考2019]春节十二响 骗分方法 如果你实在一点思路也没有,暴力都不会打,那么请考虑一下骗分. 方法一 输出所有 \(M\) 的和. 期望得分:0分. 实际还有5分 方 ...
- 易度文档管理系统--http://www.everydo.com/
易度文档管理系统--http://www.everydo.com/ 公司工程技术部门需要,暂收藏.
- nginx日志的监控【转】
第一:nginx的基础监控: 1.进程监控 2.端口监控 在这里nginx的基础监控就不详细说了,注意的是:这两个是必须要加的.并且对于zabbix而言的话,一定要加上触发器的.有问题必须报警. 第二 ...
- Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
排名函数是Sql Server2005新增的功能,下面简单介绍一下他们各自的用法和区别.我们新建一张Order表并添加一些初始数据方便我们查看效果. CREATE TABLE [dbo].[Order ...
- nslookup get public/external IP
nslookup myip.opendns.com resolver1.opendns.com Server: resolver1.opendns.comAddress: 208.67.222.222 ...
- Go学习之路
注:图片来自 https://github.com/gocn/knowledge, 更新在此,共勉前行者.
- 在 VsCode 中自定义代码补全
前言 之前公司的 Vscode 折腾成功过,如今给自己家装一个忘记怎么定义了,故回忆一下写个博文记录 代码补全顾名思义就是输入一两个字母自动提示相关的联想操作,由于VsCode非常精简所以很多联想没有 ...
- 快速部署docker
前言:docker就不用说了,好东西啊.更好的利用服务器的资源,各个服务是相互隔离的,文件的存放更加规律,也好清理空间及数据备份 docker安装-----社区版ce(免费的,另一版本收钱的) 系统: ...
- 10分钟理解JS引擎的执行机制
首先,请牢记2点: (1) JS是单线程语言 (2) JS的Event Loop是JS的执行机制.深入了解JS的执行,就等于深入了解JS里的event loop 1.灵魂三问 (1) JS为什么是单线 ...
- TopCoder SRM500 Div1 250 其他
原文链接https://www.cnblogs.com/zhouzhendong/p/SRM500-250.html SRM500 Div1 250 题意 (看题用了半个小时--) 有 n 个人(编号 ...