2009-08-12 21 views
6

Mi aplicación usa mucha memoria. Normalmente funciona bien, pero en un dispositivo cargado que no se ha reiniciado por un tiempo, se descartará con el infame error de memoria baja.Cómo responder a didReceiveMemoryWarning en la aplicación OpenGL

Me gustaría responder a didReceiveMemoryWarning y liberar algunos de mis cachés.

Pero tengo el problema de que mi aplicación está basada en la plantilla de OpenGL ES y no tiene un controlador de vista. Solo tiene el delegado de la aplicación que contiene una referencia al glView.

¿Qué puedo hacer para atrapar el mensaje didReceiveMemoryWarning para que pueda responder?

Respuesta

9

Esto también está disponible dentro de su Application Delegate.

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

También puede agregar un método como observador, en cualquier clase que desea, a la notificación UIApplicationDidReceiveMemoryWarningNotification. El código podría gustarle así:

- (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; 
} 
Cuestiones relacionadas