IOS开发学习笔记之调试

调试
符号断点:可指定某个方法;直接添加方法名,则相当于设置断点在方法的第一行;
Oc有过三种编译器:GCC(很老,弃用)、LLVM、Apple LLVM(主要使用);
LLDB调试工具:在设置断点后,在输入面板中使用lldb的命令进行调试及计算;

常用命令:
p :输出基本类型
po :输出Oc对象
expo :动态修改参数的值,并调试
call : 调用其他方法,如:call [self showSize:array]
bt : 打印调用堆栈,加all可打印全部;用于程序crash时调用;
image :用于寻址;image lookup -n;根据对象名查看数据位置;-t 根据类型查看;
c : 跳过断点,恢复进程向下执行;
b :设置断点;如:b login 即设置断点到login方法
br :查看设置的断点;br l :列表;br del 1:删除#1的断点
thread:执行步骤;thread util 45:执行到第45行;
s :跳过,向下执行
n : 向下招待一步;
si :进入线程
ni :跳出线程;
finish: 结束该线程;
r : 运行进程,并可设置启动参数;

【可在Edit BreadPoint下设置条件断点;】

单元测试
使用XCTest框架;

性能优化
Oc三种内存管理方式:
MRC:由程序员自己负责管理对象的生命周期,负责对象的创建和销毁;
ARC:与MRC一样使用内存引用计数方法,但由系统负责;(IOS5后才有)
GC:类似于java的GC;只能应用于OS X开发,不能应用于iOS开发;

使用Analyze工具检测是否有内存泄漏
Product—>profile可打开Instruments工具箱:
Leaks:用于检查内存泄漏;
Zombies:用于发现僵尸对象;
在低内存时,要做相应的处理;在ViewController类的didReceiveMemoryWarning下处理;其他类监听系统的UIApplicationDidReceiveMemoryWarningNotification通知;

博客地址:IOS开发学习笔记之调试

你可能感兴趣的:(IOS开发学习笔记之调试)