我已经在这呆了两天,我仍然无法找到失事的原因。
我知道它是与试图访问已经被释放的对象,但我不知道是哪个接入或对象。
每当我谷歌试图找到EXC_BAD_ACCESS人源使用NSZombies建议。 问题是,当我让僵尸(无论是通过环境变量或通过性能ObjectAlloc中的Xcode工具)程序不崩溃,它通常不会和僵尸不报任何东西(没有在日志中显示出来,并没有什么标记中仪器)。 是不是有什么我与NSZombie失踪?
我试图利用从Xcode的调试器,并从在ObjectAlloc中的一些仪器信息,但所有的信息是非常神秘的,并没有真正帮助我。
我已经设置了调试器停止对Objective-C的异常。 当它它这是显示的调用堆栈:
0 objc_msgSend
1 ??
2 -[UITableViewCell removeFromSuperView]
3 -[UIView dealloc]
... etc ...
首先,这是怎么回事用“1?” ? 什么是问号是什么意思? 其次重要的是我怎么能知道这是在我的代码叫什么名字? 陈述的所有操作都太普通了(如UIView的dealloc的,但是UIView的?在哪里?)。
此外,当发生异常它所指向的汇编代码一遍,不会做我任何好处,除非我花时间试图找出代码做什么。 我知道有些装配,但必须有一个更好的办法,对吧?
有什么办法,我可以得到有意义的信息,什么是在我的代码运行发生异常前的最后一行?
我已经试过周围洒些NSLogs和断点,但它并不能帮助我很多,因为崩溃发生后,我突然从一个导航控制器的视图控制器。 我到处都设置断点的断点达到正常(我无法找到一个点暴跌后 ,打破)。 当我在发生异常时调试器“继续”这是唯一的。 这是因为如果在崩溃发生的我的代码之外,所以我不知道在哪里可以得到它的句柄。
我已经通过我的代码看起来和双重检查,我坚持所有的内存管理规则(至少据我所知)。 我敢肯定,这东西很微妙,但我似乎无法找到它。
如果任何人有任何想法如何找到这样的错误不NSZombie请分享。
谢谢。