0

我的应用程序中有几个选项卡。我目前面临一个问题,即每当内存不足时我的页面就会被卸载(尤其是当我在我的应用程序中调出相机时)。

有没有办法减轻这种情况并防止发生卸载?或者有什么方法可以拦截卸载过程,以便可以做一些事情而不是让页面被卸载?

4

2 回答 2

1

你不应该阻止视图卸载,如果应用程序内存不足,它必须释放内存,否则你的应用程序将被系统简单地杀死。您应该尽可能多地清理内存以及视图。

此外,视图仅用于显示数据,如果视图被卸载,则仅在一种特定情况下:存在内存警告并且视图没有超级视图(用户不可见)。如果用户看不到它,那么在内存不足时保留它是绝对没有意义的。如果您在这些视图中存储[重要] 数据,那么您做错了。数据模型应保存在控制器中。

于 2011-10-02T04:57:58.123 回答
-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.
}
于 2011-10-02T08:14:59.307 回答