2009-08-12 12 views
6

Moja aplikacja wymaga dużo pamięci. Zwykle działa dobrze, ale na obciążonym urządzeniu, które nie zostało ponownie uruchomione za jakiś czas, zostanie odrzucone przez niesławny błąd niskiej pamięci.Jak reagować na didReceiveMemoryWarning w aplikacji OpenGL

Chciałbym odpowiedzieć na didReceiveMemoryWarning i zwolnić niektóre z moich pamięci podręcznych.

Ale mam problem, że moja aplikacja jest oparta na szablonie OpenGL ES i nie ma kontrolera widoku. Ma tylko Delegata aplikacji, który posiada odniesienie do glView.

Co mogę zrobić, aby uwięzić wiadomość didReceiveMemoryWarning, aby móc odpowiedzieć?

Odpowiedz

9

Ta funkcja jest również dostępna pod numerem Application Delegate.

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

Można również dodać metodę jako obserwator, w każdej klasie chcesz, aby powiadomienia UIApplicationDidReceiveMemoryWarningNotification. Kod może być podobny:

- (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; 
} 
Powiązane problemy