So reagieren Sie auf didReceiveMemoryWarning in der OpenGL-App
-
13-09-2019 - |
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?
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;
}