我有一个窗口和一个窗口控制器,当用户单击按钮时会打开它。 有时我得到EXC_BAD_ACCESS(代码= 1,地址= 0x0)。
0x7fff6f2a59e0: movq (%rax), %rdi
以下是代码:
ChooseProceduresWindowController *chooseProceduresWindowController = [[ChooseProceduresWindowController alloc] initWithWindowNibName:@"ChooseProceduresWindow"];
[NSApp runModalForWindow:[chooseProceduresWindowController window]];
出现错误然后调用runModalForWindow :. 我不是每次都得到这个错误,但我找不到一个模式。
由于
答案 0 :(得分:3)
调试EXC_BAD_ACCESS
错误的最佳方法是使用NSZombies
。
观看此视频以获取解释:
当您尝试释放已释放的对象时, NSZombie
会将所有对象保留在内存中,因此您可以更接近找到错误。正如@Mark H所说,这是一个内存管理问题。
此外,您可以在dealloc方法中放置NSLog
,以便更好地了解在运行时取消分配的内容。
答案 1 :(得分:1)
当内存中不存在该对象时,将抛出该错误。我开始寻找内存管理问题。第一个是确保在使用后释放ChooseProceduresWindowController。