我有一个应用程序,在最后阶段之前,用户“保存”了他在阶段中输入的所有数据,其中有一些视图控制器彼此重叠。在输入数据阶段,允许用户返回并更改某些数据。但是,我想发布一些数据结构,因为它们消耗大量内存。我无法在viewdidunload
期间释放它,因为仅在设备内存不足时才调用它。我也无法在viewDidDisappear
中发布它,因为如果用户想返回并更改内容,则数据将不存在。
我认为,执行此操作的方法是设置viewcontrollers
指向以前的viewcontrollers的指针,然后在指向以前的viewcontroller的指针上调用release函数以释放内容。
我该怎么做呢?
我想我把
#import "SomeViewController.h"
@property SomeViewController someViewController;
在
.h
文件中?我不确定从这里要去哪里。 最佳答案
如果您使用过多的内存,则系统将以比任何DIY系统更有效的方式为您处理该内存。这就是为什么首先出现内存警告,ARC,池和所有其他好东西的原因。因此,我建议您不要尝试完成什么,并相应地处理内存警告。
顺便说一句,请注意,将数据存储在viewController中不是一个好习惯,而应将数据结构保留在单独的对象中(如MVC所建议的)。例如,您可以将数据保存在一个单例对象中,您可以从每个视图控制器访问该对象,以这种方式,您还可以释放不再需要的内存,而无需保留指向所有VC链的指针。
关于objective-c - iOS:卸载和弹出 View Controller ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12008400/