标签内存pipe理

基于标签栏的应用程序与5个选项卡切换选项…我怎么想有效地pipe理内存?

切换标签是非常频繁的我如何pipe理这种情况?

要么

无论如何,所有标签都会保持活动状态? 但这是一个不好的select…

请详细描述标签栏内存pipe理

让UIKit处理它。 你不应该担心。 UIKit会卸载它认为合适的视图(并在视图控制器的viewDidUnload中被告知)。

举个例子:

  1. 您从选项卡1开始。选项卡1是视图将被加载的唯一视图控制器。

  2. 你点击标签2.现在标签2的视图控制器将被加载,标签1的视图控制器仍然在附近。

  3. 更多的时间继续,你点击加载其他视图控制器的其他标签。

  4. UIKit注意到内存运行有点低,或者只是需要一点点整理(你无法控制这个)。 所以现在它会去卸载一些视图控制器的视图(但显然从来没有你正在查看)。

你当然应该是一个很好的公民,并在viewDidUnload中释放你在视图控制器中的任何东西,当视图想要被再次加载时,你可以再次轻松地创build它们。

与标签栏控制器相关联的所有视图控制器都由标签栏控制器保留,但如果使用大量内存,则可以在viewWillDisappear:viewDidDisappear:被调用时释放由视图控制器使用的对象或资源。 当viewWillAppear:viewDidAppear:在用户再次将其点击到视图中时被调用,重新创build/重新分配这些内存占用对象。

除非处于内存不足的情况,否则视图控制器的视图可能会被释放,您只需要正确实现:

 didReceiveMemoryWarning 

 viewDidUnload 

详情请看这里和这里的 Apple文档。