IOS dealloc永远不会被调用

时间:2012-04-05 12:58:19

标签: ios dealloc

我有一个基于导航的应用程序,可以在一些ViewControllers之间切换。 如果我按下" goHome"按钮,调用方法popViewControllerAnimated:,然后返回主屏幕。但是存在一个问题:dealloc方法没有被调用,也没有释放前一个视图中的所有元素。所有动画/ UI元素都保留在内存中。我该怎么办?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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