我正在为 iPad 制作一本交互式书籍,并正在使用UINavigationController
它来实现页面和下一个页面之间的导航。当用户翻页时,下一页被推送到导航堆栈的顶部。
我现在进入应用程序的第 15 页,当我尝试从第 14 页转到第 15 页时应用程序崩溃。控制台中没有错误消息,设备的崩溃日志中也没有任何内容。
故事板中每个视图控制器的场景都UIImageViews
显示了 5MB 到 20MB 之间的图像。视图控制器的viewDidLoad
方法只被调用一次。所有应用程序资产的总大小低于 200B。我正在使用ARC。
我已经使用 Instruments 的 Memory Monitor 运行了该应用程序。每次翻页,应用程序的 Real Memory 消耗增加约 80MB,达到 800MB 时会崩溃(设备为 iPad 3)。
为什么会有如此巨大的内存消耗?这是因为 Storyboard 场景中的 UIImageView 缓存了图像吗?
UINavigationController
使用 a和 ARC时释放内存的最佳方法是什么 ?
我尝试在视图控制器的方法中添加将所有视图控制器的子视图设置为 nil viewDidDisappear:
,但内存消耗保持不变。