2009-08-12 8 views
6

La mia app utilizza molta memoria. Normalmente funziona bene, ma su un dispositivo caricato che non è stato riavviato tra un po ', verrà scaricato con il famigerato errore di memoria bassa.Come rispondere a didReceiveMemoryWarning nell'app OpenGL

Vorrei rispondere allo didReceiveMemoryWarning e liberare alcune delle mie cache.

Ma ho il problema che la mia app si basa sul modello OpenGL ES e non ha un controller di visualizzazione. Ha solo il Delegato App che detiene un riferimento alla glView.

Cosa posso fare per intercettare il messaggio didReceiveMemoryWarning in modo che possa rispondere?

risposta

9

Questo è disponibile anche nel numero Application Delegate.

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

È inoltre possibile aggiungere un metodo in qualità di osservatore, in ogni classe che si desidera, alla UIApplicationDidReceiveMemoryWarningNotification notifica. Il codice potrebbe essere il seguente:

- (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; 
}