Как реагировать на DidReceiveMemoryWarning в приложении OpenGL
-
13-09-2019 - |
Вопрос
Мое приложение использует много памяти.Обычно он работает нормально, но на загруженном устройстве, которое не перезапускалось некоторое время, он будет удален с печально известной ошибкой «Недостаток памяти».
Я хотел бы ответить на didReceiveMemoryWarning
и освободите часть моих тайников.
Но у меня проблема в том, что мое приложение основано на шаблоне OpenGL ES и не имеет контроллера представления.У него просто есть делегат приложения, который содержит ссылку на glView.
Что я могу сделать, чтобы поймать didReceiveMemoryWarning
сообщение, чтобы я мог ответить?
Решение
Это также доступно в вашем Делегат приложения.
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"Received memory warning!");
}
Другие советы
Вы также можете добавить метод в качестве наблюдателя в любой класс, который вы хотите, в UIApplicationDidReceiveMemoryWarningNotification
уведомление.Код может выглядеть следующим образом:
- (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;
}