标签内存pipe理
基于标签栏的应用程序与5个选项卡切换选项…我怎么想有效地pipe理内存?
切换标签是非常频繁的我如何pipe理这种情况?
要么
无论如何,所有标签都会保持活动状态? 但这是一个不好的select…
请详细描述标签栏内存pipe理
让UIKit处理它。 你不应该担心。 UIKit会卸载它认为合适的视图(并在视图控制器的viewDidUnload
中被告知)。
举个例子:
-
您从选项卡1开始。选项卡1是视图将被加载的唯一视图控制器。
-
你点击标签2.现在标签2的视图控制器将被加载,标签1的视图控制器仍然在附近。
-
更多的时间继续,你点击加载其他视图控制器的其他标签。
-
UIKit注意到内存运行有点低,或者只是需要一点点整理(你无法控制这个)。 所以现在它会去卸载一些视图控制器的视图(但显然从来没有你正在查看)。
你当然应该是一个很好的公民,并在viewDidUnload
中释放你在视图控制器中的任何东西,当视图想要被再次加载时,你可以再次轻松地创build它们。
与标签栏控制器相关联的所有视图控制器都由标签栏控制器保留,但如果使用大量内存,则可以在viewWillDisappear:
或viewDidDisappear:
被调用时释放由视图控制器使用的对象或资源。 当viewWillAppear:
或viewDidAppear:
在用户再次将其点击到视图中时被调用,重新创build/重新分配这些内存占用对象。
除非处于内存不足的情况,否则视图控制器的视图可能会被释放,您只需要正确实现:
didReceiveMemoryWarning
和
viewDidUnload
详情请看这里和这里的 Apple文档。