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平台的程序时候,可以使用的辅助工具 ...
随机推荐
- 用saxon框架对xml数据进行过滤 - 程序员的天堂 - ITeye技术网站
用saxon框架对xml数据进行过滤 博客分类: Java Saxon 是一个 XSLT 和XQuery处理器.它是使用 XML 文档和样式表作为输入,然后生成结果文档作为输出的程序,它还包括了一 ...
- OC与Swift创建pod
Cocoa pods 是iOS最常用的类库管理工具 OC的使用 删除源 sudo gem sources -r https://rubygems.org/ 添加源(使用淘宝的镜像,记住要用 ...
- 加载window事件
$(document).ready()和window.onload的区别 发表于 2012-08-29 由 admin 以浏览器装载文档为例,在页面加载完毕后,浏览器会通过JavaScript为DOM ...
- iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
CocoaPods是一款集合了上千个第三方开源库的开发工具,能够大幅度的提升团队项目的开发效率,降低时间成本. 那么就看一下CocoaPods这个工具在项目中的使用体现吧. 我们马上用ASIHTTPR ...
- HDU 3903 Trigonometric Function
这题真难,并不会推理... #include<cstdio> #include<cstring> #include<cmath> #include<algor ...
- 升级apache
升级Apache到最新版本,本来并不复杂,但是因为涉及到不能停止现有的Apache实例的运行,因此要小心翼翼的做. 大致分成三步: 编译新的Apache, 配置新的Apache, 替换旧的Apache ...
- SD卡兼容性问题(转)
看到一篇关于硬件抗干扰的应用实例,很有参考值.所以,转过来方便查找. 源文:SD卡兼容性问题 最近碰到了一个SD卡兼容性的问题.主芯片SD卡组的信号,经过转接板,长排线,然后再到SD卡子板之后.对多种 ...
- phpcms替换来源
//替换来源:pc标签里面必须加moreinfo="1"不加会调不出来源 {pc:content action="lists" catid="12&q ...
- Eclipse上Spring-tool的安装
三种安装方式: 插件地址:http://spring.io/tools/sts/all 1.在线安装 Help-->> Install new Software 2.本地安装,Help- ...
- Struts2标签遍历List<Map<String,String>>
<s:if test="resultList != null && resultList.size() > 0"> <s:iterator ...