在说Xcode自带测试方法前先讲下程序在内存中的空间划分, 一般可分为5个部分:
#1. BSS段, 存放未初始化的全局变量. BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。
#2. 数据段, 存放已初始化的全局变量和全局静态变量. 数据段属于静态内存分配
#3. 代码段, 存放程序执行代码
#4. 堆 , 存放进程中被动态分配的内存段.
#5. 栈 , 存放函数的参数值和局部变量, 由编译器自动分配和释放.
常说的内存管理是对堆内存的管理.
内存泄露指动态分配开辟出来的空间, 在使用完毕后未释放, 或者未被回收直至程序结束.
Xcode自带有一套测试工具
Analyze - 静态分析
如下图位置:

会自动检查代码中是否有以下错误:
#1. 是否创建了一个对象, 但并没有使用它
#2. 是否创建了一个对象或者指针, 对其初始化后却一直没有读取过
#3. 是否调用的让某个对象引用计数加1的方法, 却没有调用引用计数减1的方法
#4. 是否有错误返回类型.
运行后如果检查到有上述错误, 会有蓝色的提示, 如图

下面再就是常用的Instruments, 使用前注意最好选择真机运行不要选模拟器
打开Instruments是选择上面第一张图中的Profile, 包含以下测试功能:

我们介绍下常用的Instruments三杰:
Leaks - 内存泄露检查
这样一般如果有做过静态检查Analyze就比较少会出问题, 运行的截图:
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式