由于某种原因,我在UIKit深处发生了一次崩溃;一个EXC_BAD_ACCESS错误正在发生类似于8次调用深入到dismissModalViewController调用。我尝试为我的可执行文件启用NSZombieEnabled,但无论僵尸是否打开而且我不知道哪个对象导致问题,控制台日志都会打印相同的错误。是否有一些我缺少的东西,我需要做的是让控制台打印正确的信息?

有帮助吗?

解决方案

了解如何使用Zombies 此处

在gdb中运行它。当你获得 EXC_BAD_ACCESS 时,查看堆栈(使用gdb的where命令或运行Xcode GUI调试器)。如果您仍然遇到问题,请在原始问题中发布堆栈。

僵尸只会在你处理NSObjects时帮助你。如果你正在使用低级别的malloc / free例程,僵尸就不会为这些分配购买任何东西。

其他提示

我上周末在NSZombieEnabled似乎没有工作时学到的一件事 - 确保你没有将非对象传递给某些代码。

在我的情况下,我将NSString作为“string”返回而不是@" string"。这意味着我用c-string覆盖了一个NSString对象。当我后来尝试在该对象中写入一个新值时,我得到了一个BAD_ACCESS。 NSZombie无法帮助b / c它不是我试图覆盖的对象,而是那个c-string。

顺便说一句,将所有警告视为XCode中的错误 - 希望我可以在IDE GUI中将它们显示为RED - 有时它们很容易被遗漏。

听起来你的模态视图控制器中有些东西被过度释放了。首先评论新线,直到它停止破裂。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top