基于标签栏的应用程序,带有5个标签切换选项...我怎么想有效地管理内存?
在标签之间切换非常频繁我是如何管理这种情况的?
或
无论如何,所有标签都会保持活动状态?但这是一个糟糕的选择...
请详细说明标签栏内存管理
答案 0 :(得分:7)
让UIKit处理它。你不应该担心。 UIKit将按其认为合适的方式卸载视图(您可以在视图控制器的viewDidUnload
中了解该视图。)
例如:
从标签1开始。标签1是唯一一个将加载视图的视图控制器。
点击标签2.现在标签2的视图控制器将被加载,标签1的视图控制器仍在。
更多时间继续,您点按其他加载其他视图控制器的标签。
UIKit注意到内存运行有点低或只是想要整理一下(你无法控制它)。所以现在它将卸载一些视图控制器的视图(但显然不是你当前正在查看的视图)。
您当然应该是一个好公民,并在viewDidUnload
中的视图控制器中发布您想要再次加载视图时可以轻松创建的任何内容。
答案 1 :(得分:1)
与标签栏控制器关联的所有视图控制器都由标签栏控制器保留,但如果您使用大量内存,则可以在viewWillDisappear:
或viewDidDisappear:
时释放视图控制器使用的对象或资源。被调用{3}}。当用户再次将其点击进入视图时,当viewWillAppear:
或viewDidAppear:
被调用时,重新创建/重新分配这些占用内存的对象。
答案 2 :(得分:1)