如何在应用处于活动状态时阻止页面卸载

时间:2011-10-02 03:39:18

标签: objective-c ios viewdidunload

我的应用中有几个标签。我目前面临一个问题,即每当内存不足时我的页面都会被卸载(特别是如果我在我的应用程序中调出相机)。

有没有减轻这种情况并防止发生卸货?或者有没有办法拦截卸载过程,以便可以完成某些事情,而不是允许卸载页面?

2 个答案:

答案 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.
}