当我调试我的iPad应用程序时,我发现由于内存不足,一些视图控制器的viewDidUnload被调用。但几秒钟后,他们的viewDidLoad就被调用了。再一次由于内存不足,viewDidUnload,然后是viewDidLoad。这就像文件系统由于内存不足而不断交换文件一样。
应该是这样,还是我做错了什么?
然后我想释放视图控制器来摆脱这个。但是有时viewDidUnload在dealloc之前被调用,然后由于选择器被发送到解除分配的视图控制器而崩溃。
谢谢你的帮助。
发布于 2012-04-25 17:32:46
这是完全正常的行为。在内存不足的情况下调用viewDidUnload通知控制器视图已被释放。
iOS视图控制器编程指南中的步骤有一个清晰的轮廓。
特别要注意的是,请参阅了解如何加载和卸载视图一节中详细介绍的步骤,其中将介绍卸载周期:
诸若此类。
在您的具体情况下,肯定不希望在本例中发布视图控制器。如果您希望在内存不足的情况下进行任何进一步的内存管理,则应该覆盖didReceiveMemoryWarning的默认实现。由于docs状态,不要忘记调用[super didReceiveMemoryWarning];。
https://stackoverflow.com/questions/5039267
复制相似问题