Frage

Meine App verbraucht viel Speicher.Normalerweise läuft es einwandfrei, aber auf einem geladenen Gerät, das längere Zeit nicht neu gestartet wurde, wird es mit dem berüchtigten Fehler „Low Memory“ abgeworfen.

Ich möchte darauf antworten didReceiveMemoryWarning und einige meiner Caches freigeben.

Ich habe jedoch das Problem, dass meine App auf der OpenGL ES-Vorlage basiert und keinen View-Controller hat.Es gibt lediglich den App-Delegierten, der einen Verweis auf glView enthält.

Was kann ich tun, um das einzufangen? didReceiveMemoryWarning Nachricht, damit ich antworten kann?

War es hilfreich?

Lösung

Dies ist auch in Ihrem verfügbar Anwendungsdelegierter.

-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
  NSLog(@"Received memory warning!");
}

Andere Tipps

Sie können auch ein Verfahren als Beobachter in jeder Klasse, die Sie mögen, auf die UIApplicationDidReceiveMemoryWarningNotification Mitteilung hinzuzufügen. Der Code könnte so mögen:

- (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;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top