Objective c 内存泄漏自动释放崩溃
当我尝试将视图从A切换到B时,一切都正常。但当我想从B回到A时,应用程序崩溃了 当我删除自动释放时,应用程序工作正常,但随后它就会泄漏 以下是切换视图的代码:Objective c 内存泄漏自动释放崩溃,objective-c,memory-leaks,Objective C,Memory Leaks,当我尝试将视图从A切换到B时,一切都正常。但当我想从B回到A时,应用程序崩溃了 当我删除自动释放时,应用程序工作正常,但随后它就会泄漏 以下是切换视图的代码: -(IBAction)switchToExplainView:(id)sender{ explainViewController = [[ExplainViewController alloc] initWithNibName:@"ExplainViewController"
-(IBAction)switchToExplainView:(id)sender{
explainViewController = [[ExplainViewController alloc]
initWithNibName:@"ExplainViewController"
bundle:nil];
[self.view addSubview:explainViewController.view];
}/P>
你必须同时考虑控制器和视图。
控制器将保留其视图,但您需要保留该控制器。如果你自动释放它,它可能很容易被释放,如果你试图访问它,你的应用程序将崩溃 视图本身将由它的superview释放,而不是由控制器释放一种可能的解决方案是将该控制器存储在管理视图的类的ivar中。只有在使用完它们后才能释放它们。是否使用导航控制器在视图之间来回切换?如果是,您可能希望使用[myNavController pushViewController:…动画:…]消息。之后,您可以轻松释放explainViewController。我没有使用navigationController,我已经尝试过了,但我遇到了另一个错误:。当这不起作用时我会试试。你是说像这样的事吗,如果你有其他的例子,我将不胜感激。