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