【发布时间】:2018-06-06 04:28:11
【问题描述】:
我的应用程序中有两个带有表格视图的控制器。 每个 tableview 都有许多高质量的图像。因此,应用程序会占用大量内存(例如在第一个控制器上大约 350)。当我转到第二个视图控制器时,应用程序开始占用大约 600 Mb 的内存。当我回到第一个控制器时,应用程序开始占用大约 850 Mb 的内存。我试图观看控制器的取消初始化,但没有他们的取消初始化。它们始终在内存中,每次打开控制器都会创建新页面,但不会删除旧页面。但为什么?我可以告诉别人我做错了什么吗?
【问题讨论】:
-
您需要发布您为控制器编写的代码。
-
如果您使用segues 在viewcontollers 之间移动,请注意正常的segues 总是创建一个新的目标VC。您应该使用 unwind segue 返回到第一个视图控制器。
-
从第二个控制器关闭/弹出/展开以返回到第一个视图控制器。或者完全使用不同的技术,例如选项卡视图控制器或页面视图控制器在两个视图控制器之间跳转。我们不能说没有看到两个视图控制器之间的逻辑关系。
-
另外,当你修复了两个视图控制器之间的跳转时,你可能想看看它们在做什么,每个都占用 300mb。如果您向我们展示他们在做什么,我们或许能够提供减少内存占用的方法。例如,您是否加载了大量图像但没有针对各个图像视图的尺寸调整它们的大小?您是否在 UI 真正需要它们之前加载了大量图像?等等(不过,这可能最好是您在第一个问题解决后才发布的单独问题。)
标签: ios swift uitableview memory uiviewcontroller