Cómo responder a didReceiveMemoryWarning en aplicación OpenGL
-
13-09-2019 - |
Pregunta
Mi aplicación utiliza una gran cantidad de memoria. Normalmente funciona muy bien, pero en un dispositivo de carga que no se ha reiniciado en cuando, se echó por la borda con el error de memoria baja infame.
Me gustaría responder a didReceiveMemoryWarning
y liberar algo de mis memorias caché.
Pero tengo el problema de que mi aplicación se basa en la plantilla de OpenGL ES y no tiene un controlador de vista. Sólo tiene la App Delegado, que contiene una referencia a la glView.
¿Qué puedo hacer yo para atrapar el mensaje didReceiveMemoryWarning
de modo que pueda responder?
Solución
Esto también está disponible dentro de su Delegado Aplicación
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"Received memory warning!");
}
Otros consejos
También puede agregar un método como observador, en cualquier clase que desea, a la notificación UIApplicationDidReceiveMemoryWarningNotification
. El código podría recibir la siguiente manera:
- (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;
}