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 ...
随机推荐
- for/while循环运用(do while)
//for循环用于知道次数的循环,while用于不知道的次数的循环//第1种写法 while循环 import java.util.Scanner;//插入util工具包 public class H ...
- 等待activity出现(android特有的wait_activity)
前言 在启动app的时候,如果直接做下一步点击操作,经常会报错,于是我们会在启动完成的时候加sleep.那么问题来了,这个sleep时间到底设置多少合适呢?设置长了,就浪费时间,设置短了,就会找不到元 ...
- windows环境jprofiler配置监控tomcat
1.点击jprofiler/bin/jprofiler.exe文件安装 2.安装后将C:\Users\Administrator\.jprofiler8\config.xml文件复制到指定文件下,如: ...
- echart 常用配置
mytextStyle={ color:"#333", //文字颜色 fontStyle:"normal", //italic斜体 oblique倾斜 font ...
- Javascript我学之四作用域
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘 作用域 JavaScript的变量作用域只有两种,全局作用域和函数作用域. 函数的作用域 函数中定义的变量是私有的,仅在本函数范围内有效,称为 ...
- HTTP 403 ,tomcat配置HTTPS,无法访问 返回状态码HTTP 403
为了将本机(windows系统)启动的应用以HTTPS的形式访问, 利用Keytool 生成证书之后.在tomcat的server.xml中将配置修改为如下: <Connector port=& ...
- net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明
https://www.bug2048.com/netcore20180313/ 最近公司的一个小项目尝试使用 .net core作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的. ...
- BZOJ4827 [Hnoi2017]礼物 多项式 FFT
原文链接http://www.cnblogs.com/zhouzhendong/p/8823962.html 题目传送门 - BZOJ4827 题意 有两个长为$n$的序列$x$和$y$,序列$x,y ...
- 微信小程序--家庭记账本开发--07
最终展示以及相关代码 1.最终效果展示 最终效果展示已经根据最初要求使用视频拍摄在抖音上,下面是相关页面展示图片: 2.相关代码 本次开发主要页面则是首页界面以及记账界面以及实现页面跳转,以及记账内容 ...
- zoj3781
zoj3781赛场上堵在了缩点上emmmmm把原始图相同颜色的方块缩成一个点,然后与它周围不同颜色的联通块连双向边,然后枚举每个点然后求最大深度的最小值因为每次翻转都相当于深度+1(可以手动模拟一下 ...