繁体   English   中英

IOS dealloc 永远不会被调用

[英]IOS dealloc never gets called

我有一个基于导航的应用程序,可以在一些 ViewController 之间切换。 如果我按下“goHome”按钮,方法popViewControllerAnimated:被调用并且我返回到主屏幕。 但是有一个问题:没有调用 dealloc 方法,也没有释放前一个视图中的所有元素。 所有动画/UI 元素仍然挂在 memory 中。我该怎么办?

在您的 UIViewController 中确保您的 dealloc 具有正确的签名并且最后调用超级视图:

 - (void) dealloc {
     //Release your stuff
     [super dealloc];
 }

还要记住,在处理 UIViewControllers 时,您还需要处理 viewDidUnload 中的 memory(并没有真正解决您的问题,但我想我会把它扔在那里)。

首先,切换到自动引用计数是个好主意,会让您的生活更轻松。 其次,确保不再有对 controller 或其他对象的保留引用。

有趣的故事,一旦我忘记将NSFetchedResultsController的委托设置为 nil 和其他 memory 错误,并且当获取的结果 controller 试图调用委托时出现丑陋的异常,但它已经消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM