我是靠谱客的博主 动人溪流,最近开发中收集的这篇文章主要介绍异常断点和僵尸对象的使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大家在写程序时可能会直接报出一些错误,像是数组越界或是对象为空什么的,但是碰到这些情况后就会发现代码直接就跳到了主函数(main.m)对查找问题所在极为不利。在查到了一些资料后,针对着使用异常断点和僵尸对象的特点及其展现问题的标志,做一些个人见解。

1. 使用exception breakpoint的作用

如果不添加异常断点,运行程序出现异常时就会跳转到main函数,如果添加了异常断点后就会在抛出异常的那行停下。

 

原因描述:

代码有问题导致异常时,异常断点会停止程序的运行,一般没有设置异常断点,应用程序崩溃时,可能只会显示造成崩溃的那条异常,即便去查看日志也看不出什么问题所在,设置异常断点后,调试器会在异常抛出的瞬间停止程序的运行,并将程序定位到出现异常的那行代码上。

 

2. 使用 enable Zombie(只能用在模拟器上)

使用情况:在我们运行一个项目时,经常会有crash现象,这是让大家相当烦闷的事情,一般的造成原因我们根据日志就可以看到,但有的野指针crash是不会显示的,这时我们就需要用到僵尸对象了,在editschem中设置enable Zombie Objects为enable状态。这样执行程序如果发生crash就会在日志中打印崩溃的原因。

解析:

一般出现僵尸对象是因为我们使用了一个已经被release掉的对象。一般当我们release内存中的一个对象时,该对象将被销毁。但是,当Zombies开启时,只是将其标志为release状态,但并没有销毁,这时如果我们再度访问这个对象,Xcode可以告诉我们正在访问的对象是一个不应该存在的对象。因为xcode知道这个对象是什么,所以知道在哪里,及这样的访问是什么时候发生的。

最后

以上就是动人溪流为你收集整理的异常断点和僵尸对象的使用的全部内容,希望文章能够帮你解决异常断点和僵尸对象的使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部