Comment répondre à didReceiveMemoryWarning en application OpenGL
-
13-09-2019 - |
Question
Mon application utilise beaucoup de mémoire. Normalement, il fonctionne très bien, mais sur un dispositif chargé qui n'a pas été redémarré en temps, il sera largué avec l'erreur de mémoire faible infâme.
Je voudrais répondre à didReceiveMemoryWarning
et de libérer certains de mes caches.
Mais j'ai le problème que mon application est basé sur du modèle OpenGL ES et ne dispose pas d'un contrôleur de vue. Il a juste le délégué App qui contient une référence à la GLView.
Qu'est-ce que je peux faire pour piéger le message didReceiveMemoryWarning
afin que je puisse répondre?
La solution
est également disponible au sein de votre Délégué d'application
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"Received memory warning!");
}
Autres conseils
Vous pouvez également ajouter une méthode à titre d'observateur, dans toutes les classes que vous voulez, à la notification UIApplicationDidReceiveMemoryWarningNotification
. Le code peut vous comme ceci:
- (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;
}