Xcode自带iOS测试方法
在说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就比较少会出问题, 运行的截图:
打开后手机运行可能会慢一些, 要尽量打开程序中的所有界面检查下. 如果有内存泄露的话会在Leak check那一行出现x的符号
点击x符号能看到详细错误信息
Allocations - 内存分配检查
界面如下图
Time Profile - 运行耗时检查
能查看各个耗时的项目, 对于耗时较多的项目
上面是Xcode自带的一些检查工具, 但最重要的还是要自己多注意代码规范
Xcode自带iOS测试方法的更多相关文章
- 从C#到Objective-C,循序渐进学习苹果开发(5)--利用XCode来进行IOS的程序开发
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.前面几篇随笔主要介绍C#和O ...
- 利用XCode来进行IOS的程序开发
利用XCode来进行IOS的程序开发 本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换 ...
- [Xcode 自带svn的使用]
xcode自带svn的使用 1.代码中 某文件后面有 “M” 标记,表示该文件已被修改,需要commit. (右键该文件 -> source control -> c ...
- 【转】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具. 其功能是,帮你模拟iOS平台设备,在模拟器上运行对应的程序,以方便你没有实体设 ...
- Pencil-一个开源免费的UI原型工具,自带ios和android模板
Pencil是一个开源免费的UI原型工具,自带ios和android模板,可以很方便的做mockup. 下图是一个官方展示的模板:
- Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发
Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 直接入正题: Screen Shot 2015-09-18 at 16.56.20.png Mac上安装Jekins jekins下 ...
- How to Use Auto Layout in XCode 6 for iOS 7 and 8 Development
The Auto Layout is available on the Storyboard for iOS or OS X development since XCode 5. But, I did ...
- 使用Xcode + Python进行IOS运动轨迹模拟
前言 在某些app中,需要根据用户的实时位置来完成某些事件 例如跑步打卡软件(步道乐跑).考勤打卡软件(叮叮).某些基于实时位置的游戏(Pokemon Go.一起来捉妖) 一般解决办法是通过使用安卓模 ...
- 【整理】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得
[整理]Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得 iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具 ...
随机推荐
- Android Camera HAL浅析
1.Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信 ...
- php 中的魔术方法-----“事件方法”
来源:http://lornajane.net/posts/2012/phps-magic-__invoke-method-and-the-callable-typehint php 中的这个对象 , ...
- Android系统属性SystemProperties分析
下面这几个博客总结的不错,有空看下: http://www.cnblogs.com/bastard/archive/2012/10/11/2720314.html http://blog.csdn.n ...
- 基于keepalived 实现VIP转移,lvs,nginx的高可用
转自:http://www.tuicool.com/articles/eu26Vz 一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VI ...
- [Unity]Unity开发NGUI代码实现ScrollView(滚动视图)
Unity开发NGUI代码实现ScrollView(滚动视图) 下载NGUI包 导入NGUI3.9.1版本package 链接: http://pan.baidu.com/s/1mgksPBU 密码: ...
- OPENCV图像变换-2
一.经典霍夫变换 霍夫变换是图像处理中的一种特征提取技术,该方法通过在一个参数空间中通过计算累计结果的局部最大值来得到一个符合该特定形状的集合,作为结果. 运用两个坐标空间之间的变换,将一个空间中具有 ...
- phpMyAdmin安装与配置(涉及LAMP配置)
作者:zccst 安装一个phpMyAdmin还真麻烦,遇到很多问题.不过在解决过程中发现,PHP的水还真深,不是短时间可以看透的. 1,下载 建议去百度软件中心下载 2,使用 (1)解压后,复制配置 ...
- S3C2440硬件IIC详解
S3C2440A RISC微处理器可以支持一个多主控IIC 总线串行接口.一条专用串行数据线(SDA)和一条专用串行时钟线(SCL)传递连接到IIC总线的总线主控和外设之间的信息.SDA和SCL线都为 ...
- [Angular Tutorial] 14 -Animations
在这一步中,我们将会通过在我们先前创建的模板代码中添加CSS和JavaScript动画效果来扩展我们的web应用. ·我们现在使用ngAnimate模块来允许动画效果贯穿整个应用. ·我们也依赖于自带 ...
- VC创建多级目录
BOOL ForceCreateDirectory(string strDir) { BOOL bRet = FALSE; //确保以"\"结尾,以创建最后一个目录 ...