Debug
Zombie Object
使用
当出现EXC_BAD_ACCESS
错误时,一般是由于访问了已被释放的对象,通过Product
-> Scheme
-> Edit Scheme
-> Diagnostics
勾选Zombie Object
开快速定位问题。
原理
开启Zombie Object
后,当对象retainCount
为0即将被释放时,编译器会用一个内置的僵尸对象来替代该对象,对该对象发送消息时会出发异常,同时可以快速定位问题。
当问题解决后记得关闭Zombie Object
选项
Address sanitizer
当程序创建变量分配一段内存时,将此内存后面的一段内存也冻结住,标识为中毒内存。当程序访问到中毒内存时(越界访问),就会抛出异常,并打印出相应log信息。
Chisel
Chisel常用命令:
命令 | 效果 |
---|---|
pviews | 打印指定view的层级 |
pvc | 打印viewController的结构 |
show & hide | 显示/隐藏视图 |
border/unborder | 给指定view添加边框标记 |