2010-08-17 97 views
2

应用程序有4个视图控制器;菜单,A,B和C以及一个单例类,用于保存4个数组中的数据,这些数据在app终止时写入磁盘。从菜单中选择将创建A的一个实例,“a”;从“a”中选择创建B的实例,“b”,并从“b”中选择调出一个模态数据输入视图“c”。内存问题:模拟内存警告/ didReceiveMemoryWarning

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

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

有关可能发生的事情的任何想法都会被赞赏。

谢谢。

回答

3

什么对我来说不是很明显(虽然它应该是),当视图被释放时,下一次该视图被调用时,viewDidLoad方法被再次调用;因为我用viewDidLoad方法初始化了我的数组,所以它们被清除了。

希望有一天在未来这个职位可以节省一些我浪费在这个时间上的时间(至少我不会觉得那么糟糕,关于'啊,看不见了,viewDidLoad必须叫')