Objective c 内存泄漏自动释放崩溃

Objective c 内存泄漏自动释放崩溃,objective-c,memory-leaks,Objective C,Memory Leaks,当我尝试将视图从A切换到B时,一切都正常。但当我想从B回到A时,应用程序崩溃了 当我删除自动释放时,应用程序工作正常,但随后它就会泄漏 以下是切换视图的代码: -(IBAction)switchToExplainView:(id)sender{ explainViewController = [[ExplainViewController alloc] initWithNibName:@"ExplainViewController"

当我尝试将视图从A切换到B时,一切都正常。但当我想从B回到A时,应用程序崩溃了

当我删除自动释放时,应用程序工作正常,但随后它就会泄漏

以下是切换视图的代码:

-(IBAction)switchToExplainView:(id)sender{

explainViewController = [[ExplainViewController alloc]
                         initWithNibName:@"ExplainViewController"
                         bundle:nil];

[self.view addSubview:explainViewController.view];

}/P>

你必须同时考虑控制器和视图。

控制器将保留其视图,但您需要保留该控制器。如果你自动释放它,它可能很容易被释放,如果你试图访问它,你的应用程序将崩溃

视图本身将由它的superview释放,而不是由控制器释放


一种可能的解决方案是将该控制器存储在管理视图的类的ivar中。只有在使用完它们后才能释放它们。

是否使用导航控制器在视图之间来回切换?如果是,您可能希望使用[myNavController pushViewController:…动画:…]消息。之后,您可以轻松释放explainViewController。

我没有使用navigationController,我已经尝试过了,但我遇到了另一个错误:。当这不起作用时我会试试。你是说像这样的事吗,如果你有其他的例子,我将不胜感激。