如何在OpenGL应用程序中响应didReceiveMemoryWarning

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在OpenGL应用程序中响应didReceiveMemoryWarning相关的知识,希望对你有一定的参考价值。

我的应用程序使用了大量内存。通常它运行正常,但是在一段时间内没有重新启动的加载设备上,它将被抛弃臭名昭着的低内存错误。

我想回应didReceiveMemoryWarning并释放我的一些缓存。

但我有一个问题,我的应用程序是基于OpenGL ES模板,没有视图控制器。它只有App Delegate,它包含对glView的引用。

如何捕获didReceiveMemoryWarning消息以便我可以做出响应?

答案

这也可以在你的Application Delegate中找到。

-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
  NSLog(@"Received memory warning!");
}
另一答案

您还可以在任何类中将方法作为观察者添加到UIApplicationDidReceiveMemoryWarningNotification通知中。代码可能是这样的:

- (void) cleanMemory: (NSNotification*) notification {
  // Save memory!
}

- (id) init {  // Or any other function called early on.
  // other init code
  [[NSNotificationCenter defaultCenter]
   addObserver:self selector:@selector(cleanMemory:)
          name:UIApplicationDidReceiveMemoryWarningNotification
        object:nil];
  return self;
}

以上是关于如何在OpenGL应用程序中响应didReceiveMemoryWarning的主要内容,如果未能解决你的问题,请参考以下文章

想问问,用opengl鼠标消息响应来确定在场景中前进或后退,其效果有点卡的感觉,怎么改进啊?

(转)使用OpenGL显示图像响应触摸事件

SDL OpenGL 窗口无响应,透明

Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件

OpenGL/GLFW/GLM - 键盘输入无响应

Swift:如何从服务器接收远程通知?