与[self dismissModalViewControllerAnimated]奇怪的EXC_BAD_ACCESS

时间:2011-10-21 00:04:44

标签: ios exc-bad-access modalviewcontroller presentmodalviewcontroller

在我的应用中,我在模式之间切换视图。我的问题是,当我从第一个viewController移动到第二个时,它可以工作。当我第一次关闭第二个视图时,这也有效。你说的问题在哪里?它来了。当我第一次从第一个viewController移动到第二个viewController时,它再次起作用。就像它应该的那样。然而,当我试图在第二次关闭第二个viewController时,我得到了一个EXC_BAD_ACCESS错误

[self dismissModalViewControllerAnimated:YES];

线。

为什么第二次崩溃,但从来没有第一次崩溃?

编辑一:

无论我切换到哪个viewController,都会发生此错误:

如果我从A移动到B,然后返回A,然后再移动到B,然后尝试返回A:崩溃 如果我从A移动到C,然后回到A,然后回到C,然后尝试回到A:再次崩溃

编辑二:

我使用以下代码创建/显示视图控制器:

MapView *controller = [[MapView alloc] initWithNibName:@"MapView" bundle:nil];

controller.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:controller animated:YES];

我应该在创建后释放这个对象吗?

问题解决了。在我使用模态视图之前,我曾使用过的代码行被用于转换,我忘了删除它。取胜。

1 个答案:

答案 0 :(得分:2)

通常,EXC_BAD_ACCESS错误意味着您正在尝试引用已释放的对象,即您过度释放某些内容。查看内存管理,可以运行Build / Build and Analyze工具。

是的,你应该在以模态方式呈现viewcontroller之后调用[controller release];