【发布时间】:2013-03-18 09:37:21
【问题描述】:
我正在使用一个相当复杂的基于故事板的 iPad 应用程序。我的工作流程如下一个集合视图推送另一个视图,它以模态方式呈现另一个视图。
模态呈现的第三个视图相当复杂,有 19 个子视图,其中一些是图像视图。该应用程序在 viewDidLoad 中组织视图层次结构方面做了很多工作。 viewWillAppear 或 viewDidAppear 中没有其他内容。
困扰我的是,如果我将日志记录语句放在 viewDidLoad 中,我会看到 viewDidLoad 在用户启动故事板 segue 后的 1.5 秒内完成。然后调用 viewWillAppear。 在那之后,屏幕会在那里停留 3 到 80 秒(是的,八十秒!)。 有时视图看起来相对较快,有时则需要很长时间。
这是我的 viewDidLoad 占用太多内存的症状吗? 换句话说,延迟是因为 iOS 清理了足够的内存以使我的视图出现吗?
在 xCode 中点击停止按钮后,我重新启动应用程序,执行一系列步骤以呈现视图控制器,这是第一次运行:
/
/80 seconds!
2013-03-27 22:56:30.311 iconmaker[2076:907] -[GLFirstViewController viewWillAppear:] [Line 597] viewWillAppear
2013-03-27 22:57:50.351 iconmaker[2076:907] -[GLFirstViewController viewDidAppear:] [Line 604] viewDidAppear
//after popping the view controller and repeating:
//less than 2 seconds
2013-03-27 22:59:23.698 iconmaker[2076:907] -[GLFirstViewController viewWillAppear:] [Line 597] viewWillAppear
2013-03-27 22:59:24.306 iconmaker[2076:907] -[GLFirstViewController viewDidAppear:] [Line 604] viewDidAppear
更新:关闭设备,然后重新启动后,视图控制器的显示速度非常快,第一次运行不到 2 秒。这是推送/弹出控制器 4 次后的分配分析。
这是内存释放问题吗?
【问题讨论】:
标签: ipad memory-management ios6 uiviewcontroller uistoryboard