【发布时间】:2014-12-30 08:53:35
【问题描述】:
我正在尝试使用 NSZombie 调试 EXC_BAD_ACCESS 崩溃。我的应用程序创建了许多大型对象,并且启用了 NSZombie 后,它们没有被释放,导致应用程序在几秒钟内崩溃。这意味着我什至无法在应用程序因内存不足而崩溃之前导致 EXC_BAD_ACCESS 崩溃。
还有其他选择吗?我可以在特定文件而不是整个项目上启用 NSZombie 吗?我还能如何调试此崩溃(我知道它是由 UIGestureRecognizer 引起的,但我经常使用它们,因此它不会显着缩小问题范围)。
谢谢。
编辑: 谢谢你的建议。我想我可能已经解决了这个问题,并会在更多测试后报告。
编辑 2:我自己解决了这个问题,但选择的答案似乎是未来任何类似问题的一个很好的解决方案。
【问题讨论】:
-
模拟器可以处理比真实设备更多的内存使用。可以在模拟器上试试吗?
-
@rmaddy 也没有运气。它分配了大约 100mb 的内存并崩溃了。
-
如果您似乎遇到了僵尸问题,首先要做的是运行 Analyzer 并仔细处理产生的警告。它很有可能会找到您的问题。
-
@HotLicks 我想我可能已经解决了它!在确认之前要做更多的测试,因为它不容易重现。
-
@kmcgrady 在你的 dealloc 中,你可以用指向僵尸类的指针替换你的对象的 isa 来实现单文件僵尸检查。可能是。没试过。
标签: ios objective-c memory nszombie