内存问题:模拟内存警告/ didReceiveMemoryWarning

时间:2010-08-17 16:39:04

标签: iphone memory-management memory-leaks

App有4个视图控制器;菜单,A,B和C,以及用于在4个阵列中保存数据的单例类,这些数组在应用程序终止时写入磁盘。从菜单中选择一个A的实例,“a”;从“a”的选择创建B的实例,“b”,并且从“b”,选择产生模态数据输入视图“c”。

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

根据我的经验,内存警告发布视图,但我很困惑为什么数组似乎被释放。我在创作后试过'保留',但内容仍然消失。

对于可能发生的事情的任何想法都表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:3)

对我来说并不完全显而易见(虽然应该是这样),当发布视图时,下次调用该视图时,再次调用viewDidLoad方法;因为我在viewDidLoad方法中初始化了我的数组,所以它们正在被淘汰。

希望将来有一天这篇文章可以节省一些人我浪费在这上面的时间(至少那时我不会感到非常糟糕,关于'呃,视图消失了,viewDidLoad必须被称为')