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

问题描述 投票:6回答:2

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

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

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

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

iphone opengl-es didreceivememorywarning low-memory
2个回答
9
投票

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

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

10
投票

您还可以在任何类中将方法作为观察者添加到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;
}
© www.soinside.com 2019 - 2024. All rights reserved.