我一直在对我正在开发的应用程序进行内存分析,并注意到我的应用程序中的详细视图控制器被“放弃”(仍然驻留在内存中,但仍然存在有效的引用),直到一个新的视图控制器被推送到导航堆栈上. 我已经在设备上和模拟器中测试了这个,并遇到了同样的问题。
我在这里创建了一个示例项目,并在此处创建了一个演示该现象的视频。在dealloc
详细视图控制器中,我放置了一条关于何时销毁视图控制器的日志消息。直到将新视图控制器放置到导航堆栈上之后才会执行此操作。
执行内存配置文件,视图控制器不会被释放,直到UISplitViewController
调用内部的私有方法,_willShowCollapsedDetailViewController:inTargetController:
:
有什么我想念的吗?这是一个错误吗?如果不是,我如何确保从导航堆栈弹出时正确释放详细视图控制器?
这个问题存在于 iOS 8和9 中。