Domanda

La mia applicazione utilizza molta memoria. Normalmente funziona benissimo, ma su un dispositivo caricato che non è stato riavviato in un po ', sarà gettato fuori bordo con l'errore di memoria a bassa infame.

Vorrei rispondere a didReceiveMemoryWarning e liberare un po 'dei miei cache.

Ma ho il problema che la mia app è in base al largo del modello OpenGL ES e non dispone di un controller della vista. Ha appena il delegato App che contiene un riferimento al GLview.

Che cosa posso fare per intrappolare il messaggio didReceiveMemoryWarning in modo che possa rispondere?

È stato utile?

Soluzione

Questa è disponibile all'interno del vostro Delega Application

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

Altri suggerimenti

È anche possibile aggiungere un metodo in qualità di osservatore, in ogni classe che si desidera, alla notifica UIApplicationDidReceiveMemoryWarningNotification. Il codice potrebbe piacere in questo modo:

- (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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top