内存问题 - 释放整个ViewController?

问题描述:

我在TabBarController中使用了一些Tabs,并且在切换标签和内容时遇到内存问题。有没有办法释放和释放一切,当我去另一个ViewController?内存问题 - 释放整个ViewController?

因此,当我在ViewController#1的Tab#1中,并且使用ViewController#2转到Tab#2时,如何释放所有内存中的ViewController#1?

Thx! Sebastian

标签栏控制器将保留其所有视图控制器,因此除非从标签栏中删除相应的选项卡,否则无法释放视图控制器执行的所有内存。但是,视图控制器通常不需要大量的内存,除了它的视图。请确保您在viewDidUnload之间发布了所有网点(以及其他所有可在viewDidLoad中重新创建的网点)。如果您的视图控制器保存其他大量数据,您应该在didReceiveMemoryWarning中释放它们,以便稍后重新创建它们。

+0

Thx :)另外一个问题...在我的ViewDidLoad我的ViewController我建立一个UIScrollview:myScroller = [[UIScrollView alloc] initWithFrame:CGRectMake ...我添加了许多subViews myScroller。发布整个卷轴的子视图的最佳方式是什么?我应该在哪里做?当我释放它时,我必须在viewWillAppear中重建它,以便在用户返回到选项卡时重建它,这是否正确? – wolfrevo 2010-06-15 18:35:16

+0

您应该了解'viewDidLoad'和'viewDidUnload'之间的关系。在'viewDidLoad'中创建的所有内容以及您保留的所有NIB插座,您必须在'viewDidUnload'中释放。 'viewWillAppear:'与它无关。您当然不必在该方法中重新创建视图,因为在需要时会调用viewDidLoad。 – 2010-06-15 19:17:04