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?

Était-ce utile?

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top