我的应用程序中有几个选项卡。我目前面临一个问题,即每当内存不足时我的页面就会被卸载(尤其是当我在我的应用程序中调出相机时)。
有没有办法减轻这种情况并防止发生卸载?或者有什么方法可以拦截卸载过程,以便可以做一些事情而不是让页面被卸载?
我的应用程序中有几个选项卡。我目前面临一个问题,即每当内存不足时我的页面就会被卸载(尤其是当我在我的应用程序中调出相机时)。
有没有办法减轻这种情况并防止发生卸载?或者有什么方法可以拦截卸载过程,以便可以做一些事情而不是让页面被卸载?
你不应该阻止视图卸载,如果应用程序内存不足,它必须释放内存,否则你的应用程序将被系统简单地杀死。您应该尽可能多地清理内存以及视图。
此外,视图仅用于显示数据,如果视图被卸载,则仅在一种特定情况下:存在内存警告并且视图没有超级视图(用户不可见)。如果用户看不到它,那么在内存不足时保留它是绝对没有意义的。如果您在这些视图中存储[重要] 数据,那么您做错了。数据模型应保存在控制器中。
当内存变低时,所有视图控制器都会获得它们的委托方法:didReceiveMemoryWarning 被调用。
UIViewController 的默认实现是卸载视图。
因此,为了覆盖此行为,您需要做的就是覆盖该方法:
- (void)didReceiveMemoryWarning
{
//[super didReceiveMemoryWarning]; - calling this will unload the view
// Relinquish ownership any cached data, images, etc that aren't in use.
}