我正在构建一个 iOS 应用程序,其中一个“汉堡菜单”类型的抽屉可以打开左侧的选项列表。像这样:
每次你点击一个项目,例如“设置”,它会加载一个新的 View Controller 并将其显示在主视图 Controller 上。现在,我想知道的问题是每次单击菜单中的新项目时我是否应该释放 View Controller 。
例如:
- 您正在查看收件箱
- 您点击“设置”
- 我释放 InboxViewController 并分配初始化 SettingsViewController
- 我将 SettingsViewController 设为主视图 Controller
我想将所有 View Controller 保存在内存中,因为我认为如果之前已分配它,它将提供从一个 View Controller 到下一个 View Controller 的更平滑过渡,而不必每次都等待分配它。
我正在使用 ARC
这是不好的做法吗?我的内存中可能有 6-7 个 View Controller 。
最佳答案
查看 SDK,Apple 做出了两种选择:UINavigationController
将整个 VC 堆栈保持在顶部以下,而 UIPageViewController
积极释放除当前页面之外的任何页面。
这是一个“速度/空间”交易的例子。预计算和缓存对象会更快(一旦运行)但占用更多内存。更积极地发布和构建(或重建)将产生一些运行时间成本但占用更少的内存。
这个问题也可能是一个优化过早或不必要的例子。对于少数典型的 VC,分配速度很快,内存占用量(应该)很小。改变方法可能对速度或空间影响不大。
我将从更简单的方法开始(可能允许被动释放 VC 更简单),看看是否有需要解决的明显问题。
关于ios - 将 UIViewControllers 保存在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25457693/