iphone - 内存问题: simulated memory warning/didReceiveMemoryWarning

标签 iphone memory-management memory-leaks

应用程序有 4 个 View Controller ;菜单、A、B 和 C,以及一个单例类,用于将数据保存在 4 个数组中,这些数据在应用程序终止时写入磁盘。从菜单中进行选择会创建 A 的实例“a”;从“a”中进行选择会创建 B、“b”的实例,并且从“b”中进行选择会调出模态数据输入 View “c”。

我模拟来自“b”的内存警告,并且4个数组的内容(在“c”中输入)消失,但不是立即消失,只有在返回“b”(仍然存在于“b”中)然后返回之后到“a” - 在 vi​​ewDiDAppear(数据完美显示)和 viewWillDisappear(数据消失)之间的“a”中的某处,即使我唯一做的就是点击后退按钮。

根据我的经验,内存警告释放 View ,但我很困惑为什么数组似乎被释放。我在创建后尝试“保留”,但内容仍然消失。

任何关于可能发生的事情的想法都值得赞赏。

谢谢。

最佳答案

对我来说并不完全明显(尽管应该是),当 View 被释放时,下次调用该 View 时,将再次调用 viewDidLoad 方法;由于我在 viewDidLoad 方法中初始化了数组,因此它们被清除了。

希望将来有一天,这篇文章可以为某人节省我在这方面浪费的时间(至少那时我不会因为“呃, View 消失了,必须调用 viewDidLoad”而感到那么难过)

关于iphone - 内存问题: simulated memory warning/didReceiveMemoryWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3504812/

相关文章:

c - munmap_chunk() : invalid pointer error

c++ - 如何管理从 C++ 返回到 QML 的 QObject 的生命周期?

linux - 分析网络应用程序中的资源泄漏(套接字处理程序等)

javascript - 如何分析并获取 Javascript 性能

iphone - 从服务器获取数据到 iPhone sdk

iphone - iOS 新窗口以应用程序模式打开

memory - 当32位机器可以访问最大4GB RAM时,它如何访问150GB HDD

WPF WriteableBitmap 内存泄漏?

iphone - 如何正确处理 iPhone 上的错误

iphone - iOS 模拟器的网速变慢