我有一个基于导航的应用程序,可以在一些ViewControllers之间切换。
如果我按下" goHome"按钮,调用方法popViewControllerAnimated:
,然后返回主屏幕。但是存在一个问题:dealloc方法没有被调用,也没有释放前一个视图中的所有元素。所有动画/ UI元素都保留在内存中。我该怎么办?
答案 0 :(得分:1)
在你的UIViewController中确保你的dealloc具有正确的签名并且最后调用超级视图:
- (void) dealloc {
//Release your stuff
[super dealloc];
}
还要记住,当处理UIViewControllers时,你需要处理viewDidUnload中的内存(并没有真正解决你的问题,但我想我会把它扔进那里)。
答案 1 :(得分:1)
首先,切换到自动参考计数是一个好主意,会让您的生活更轻松。其次,确保不再有对控制器或其他对象的保留引用。
有趣的故事,一旦我忘记将NSFetchedResultsController
的委托设置为nil和其他内存错误,并且在获取的结果控制器试图调用委托时出现了一个丑陋的异常,但它已经消失了。