Como responder a didReceiveMemoryWarning em OpenGL aplicativo
-
13-09-2019 - |
Pergunta
Meu aplicativo usa muita memória. Normalmente, ele funciona muito bem, mas em um dispositivo carregado que não foi reiniciado em algum tempo, ele será descartado com o erro de memória baixa infame.
Gostaria de responder a didReceiveMemoryWarning
e liberar algumas das minhas caches.
Mas eu tenho o problema que meu aplicativo é baseado fora do modelo de OpenGL ES e não tem um controlador de vista. Ele só tem a App delegado que contém uma referência ao glView.
O que posso fazer para interceptar a mensagem didReceiveMemoryWarning
para que eu possa responder?
Solução
Isto também está disponível dentro do seu Aplicação Delegado
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"Received memory warning!");
}
Outras dicas
Você também pode adicionar um método como observador, em qualquer classe que você quiser, com a notificação UIApplicationDidReceiveMemoryWarningNotification
. O código pode gostar assim:
- (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;
}