博客> 调试
调试
1小时前 评论:0 阅读:935 zyqiong
ios 调试

总结一下调试方法:

1.最基本的,断点(Breakpoint)调试

1)普通断点

在需要添加断点的那一行左侧点一下就可以添加一个断点,再次点击就可以让断点不可用,直接拖动断点就可以删除,或者右击选择删除断点。程序运行到这一行的时候会自动暂停。此时可以在控制台查看参数的值进行调试。在某一行创建断点的快捷键是 command + \.

2)条件断点

给普通断点设置条件,就是条件断点。设置普通断点之后,右击选中Edit Breakpoint...可以对断点进行编辑。
比如对一个for循环进行断点调试,希望在i==3的时候暂停程序,则可以对断点进行编辑,在condition中输入i==3即可。
或者在ignore中输入3,则前三次都直接跳过,在i==3的时候也就是第四次执行的时候进入断点
条件断点还可以计算当前方法执行的次数,在编辑断点中选择Action为Log Message,同时选择Automatically continue after evaluating。表示执行到断点自动向下执行。

3)异常断点

程序crash的时候,程序会自动跳到main.h中,根本无法定位crash原因。这时可以添加异常断点

4)符号断点 symbolic breakpoint

符号断点的添加和异常断点的添加在同一位置,区别是在添加符号断点的时候,可以为断点设置指定的[类名 方法名],则在执行到这个方法的时候会中断执行。

2.Analyze分析器

执行Analyze分析器的方法:Product-->Analyze
Analyze分析器是一种静态的工具,可以找出程序中未使用的变量或者一些死存储。执行Analyze分析之后会将结果用蓝色标志标出来

3.Profile检查器

Product-->Profile

4.僵尸对象

已经被release但还没有完全消失的对象叫僵尸对象,对僵尸对象再次释放或者对僵尸对象发送其他消息,都会出现异常。开启僵尸对象模式,可以快速定位异常位置。
开启方法:Product-->Scheme-->Edit Scheme ,选择Enable Zombie Objects

5.po 命令、print命令

断点调试的时候,可以使用po 命令 、print命令打印出变量信息
也可以多使用NSLog打印信息进行调试

6.生命周期方法

7.查看代码运行时间,确定运行效率。即方法执行前和执行后的时间差

8.视图调试

写完一些UI视图的代码,运行之后发现并不是自己预期的效果,这是就可以运用视图调试
查看当前界面的控件之间的层次关系,左侧的树形结构可以在线程、队列和UI之间切换

9.常用宏定义,让代码在不同情况下执行

1)__OPTIMIZE__ : 可以设置代码在release时执行或者在debug时执行

#ifndef  __OPTIMIZE__ 
    // 没有定义__OPTIMIZE__ ,执行debug模式
else 
     // 定义了__OPTIMIZE__ ,执行release模式
#endif

2)__IPHONE_OS_VERSION_MAX_ALLOWED:当前编译的SDK版本,可以将之与不同版本进行比较,分别执行不同的代码

if (__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_9_0) {
    // 执行代码
 } else {
    // 执行代码
 }

10.预编译宏

#ifdef   #else   #endif
#ifndef  
收藏
0
sina weixin mail 回到顶部