美文网首页
OC静态代码检测

OC静态代码检测

作者: 希罒 | 来源:发表于2019-08-21 11:44 被阅读0次

通过Xcode自带的分析工具进行代码检测

Xcodebuild Analyze
直接通过xcode菜单Product→Analyze来进行分析,执行之前最好clean下Command+Shift+K

Analyze主要分析以下四种问题:

  1. 逻辑错误:访问空指针或未初始化的变量等;
  2. 内存管理错误:如内存泄漏等; 比如ARC下,内存管理不包括core foundation
  3. 声明错误:从未使用过的变量
  4. Api调用错误:未包含使用的库和框架

以下是在大型项目中分析出问题的所在:

  • 局部变量声明后没有设置初始值,在Debug模式下可能没问题,在Release模式下该变量会被赋值垃圾
  • 调用Block函数没有做非空判断,就直接调用,有可能导致崩溃
  • 声明的属性中用copy修饰可变的类型,是最不应该出现的问题
  • 声明的API参数(返回值,形参)都标识可空或不可空,这样预编译下,编译器就没有给出警告提示;在API内部实现应该做判空处理,隐患比较低
  • 局部变量声明后并且初始化了,在接下来的逻辑里该变量一定会被重新被赋值,在被重新赋值期间该已初始化的变量是没有被使用到的,也就是说开辟了两段内存空间,造成短时间内存泄漏
  • 局部变量被初始化了,也有被重新赋值,但是在该作用域内没有被读取,也就是说开辟内存不用造成短暂的内存泄漏
  • 局部变量被初始化了,完全没有被使用到,也会造成短暂的内存泄漏
  • 重写系统的方法没有调用super,可能存在功能不完整问题
  • Core Foundation/C 手动创建出来的对象没有手动释放内存,造成内存泄漏
  • 构造函数中存在错误的方式类实例

相关文章

网友评论

      本文标题:OC静态代码检测

      本文链接:https://www.haomeiwen.com/subject/gntnsctx.html