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