简而言之,我是一个NSZombies新手。我刚刚开始尝试使用它们进行调试,因为到目前为止,我已经能够在没有它们的情况下解决所有的内存问题。
现在,我开始..。
[UIImage isKindOfClass:]: message sent to deallocated instance 0x8095f10有没有办法让这一点指向我的代码中的一行?我的意思是,与仅仅得到一个崩溃/坏的访问错误相比,这是一个很大的改进,但这仍然只是将范围缩小到某种UIImage内存问题。理想情况下,我希望它是这样的:“您在y类的第x行创建的UIImage在被释放后发送了一条isKindOfClass消息。”
此外,我非常确定在我的代码中没有首先使用向UIImage发送isKindOfClass。UIImage是否在其代码中的某处使用了该方法?
编辑:更新标签。意外地有了一个旧问题的标签。
发布于 2012-09-20 00:13:53
使用仪器在iOS模拟器中运行您的应用程序,并选择僵尸选项。
重新创建导致问题的条件,然后您应该能够查看隐藏了系统符号的反向堆栈跟踪,它会将您带到代码中引用僵尸的位置。它可能不会告诉你它是在哪里被释放的,但它肯定会帮助你缩小错误的范围。
发布于 2012-09-19 23:50:36
作为一个新手,我只想说,当我在离开视图控制器之前没有通知我的代理时,我看到了这个错误,僵尸打开了。例如,如果我有someObject.delegate = self,我可以通过在viewWillDisappear中设置someObject.delegate = nil来避免这个错误。
发布于 2013-06-06 17:22:13
在Xcode中点击异常断点,它将捕获僵尸(以及更多其他异常,C++和Objective-C),因为它将保留异常引发时的任何状态,而不会超出Objective-C作用域和longjmp()'d到main()的所有作用域。
这在模拟器和设备上都是有效的。从我写下任何项目的第一行代码开始,我几乎就有了这个断点。
https://stackoverflow.com/questions/12498200
复制相似问题