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?

¿Fue útil?

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top