Вопрос

Мое приложение использует много памяти.Обычно он работает нормально, но на загруженном устройстве, которое не перезапускалось некоторое время, он будет удален с печально известной ошибкой «Недостаток памяти».

Я хотел бы ответить на 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;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top