在说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测试方法的更多相关文章

  1. 从C#到Objective-C,循序渐进学习苹果开发(5)--利用XCode来进行IOS的程序开发

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.前面几篇随笔主要介绍C#和O ...

  2. 利用XCode来进行IOS的程序开发

    利用XCode来进行IOS的程序开发 本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换 ...

  3. [Xcode 自带svn的使用]

    xcode自带svn的使用 1.代码中 某文件后面有 “M” 标记,表示该文件已被修改,需要commit.            (右键该文件 -> source control -> c ...

  4. 【转】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

    iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具. 其功能是,帮你模拟iOS平台设备,在模拟器上运行对应的程序,以方便你没有实体设 ...

  5. Pencil-一个开源免费的UI原型工具,自带ios和android模板

    Pencil是一个开源免费的UI原型工具,自带ios和android模板,可以很方便的做mockup. 下图是一个官方展示的模板:         

  6. Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发

    Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 直接入正题: Screen Shot 2015-09-18 at 16.56.20.png Mac上安装Jekins jekins下 ...

  7. 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 ...

  8. 使用Xcode + Python进行IOS运动轨迹模拟

    前言 在某些app中,需要根据用户的实时位置来完成某些事件 例如跑步打卡软件(步道乐跑).考勤打卡软件(叮叮).某些基于实时位置的游戏(Pokemon Go.一起来捉妖) 一般解决办法是通过使用安卓模 ...

  9. 【整理】Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得

    [整理]Xcode中的iOS模拟器(iOS Simulator)的介绍和使用心得 iOS模拟器简介 iOS功能简介 iOS模拟器,是在Mac下面开发程序时,开发iOS平台的程序时候,可以使用的辅助工具 ...

随机推荐

  1. 用saxon框架对xml数据进行过滤 - 程序员的天堂 - ITeye技术网站

    用saxon框架对xml数据进行过滤 博客分类: Java   Saxon 是一个 XSLT 和XQuery处理器.它是使用 XML 文档和样式表作为输入,然后生成结果文档作为输出的程序,它还包括了一 ...

  2. OC与Swift创建pod

    Cocoa pods 是iOS最常用的类库管理工具   OC的使用   删除源   sudo gem sources -r https://rubygems.org/ 添加源(使用淘宝的镜像,记住要用 ...

  3. 加载window事件

    $(document).ready()和window.onload的区别 发表于 2012-08-29 由 admin 以浏览器装载文档为例,在页面加载完毕后,浏览器会通过JavaScript为DOM ...

  4. iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架

    CocoaPods是一款集合了上千个第三方开源库的开发工具,能够大幅度的提升团队项目的开发效率,降低时间成本. 那么就看一下CocoaPods这个工具在项目中的使用体现吧. 我们马上用ASIHTTPR ...

  5. HDU 3903 Trigonometric Function

    这题真难,并不会推理... #include<cstdio> #include<cstring> #include<cmath> #include<algor ...

  6. 升级apache

    升级Apache到最新版本,本来并不复杂,但是因为涉及到不能停止现有的Apache实例的运行,因此要小心翼翼的做. 大致分成三步: 编译新的Apache, 配置新的Apache, 替换旧的Apache ...

  7. SD卡兼容性问题(转)

    看到一篇关于硬件抗干扰的应用实例,很有参考值.所以,转过来方便查找. 源文:SD卡兼容性问题 最近碰到了一个SD卡兼容性的问题.主芯片SD卡组的信号,经过转接板,长排线,然后再到SD卡子板之后.对多种 ...

  8. phpcms替换来源

    //替换来源:pc标签里面必须加moreinfo="1"不加会调不出来源 {pc:content action="lists" catid="12&q ...

  9. Eclipse上Spring-tool的安装

    三种安装方式: 插件地址:http://spring.io/tools/sts/all 1.在线安装  Help-->> Install new Software 2.本地安装,Help- ...

  10. Struts2标签遍历List<Map<String,String>>

    <s:if test="resultList != null && resultList.size() > 0"> <s:iterator  ...