2012-03-27 3 views

ответ

4
[[NSNotificationCenter defaultCenter] postNotificationName:      
    @"UIApplicationMemoryWarningNotification" object:[UIApplication sharedApplication]]; 
+0

это не работает для меня –

+0

использование UIApplicationDidReceiveMemoryWarningNotification –

7

В симуляторе вы можете перейти в раздел «Оборудование» и выбрать «Имитировать предупреждение памяти».

enter image description here

Если вы пытаетесь сделать это на реальном устройстве IOS, this blog post объясняет, как послать предупреждение памяти в коде.

0

В тренажере, вы можете моделировать одну ...

От устройства, вы можете выделить огромные объемы памяти (через malloc, например). Вам нужно будет сделать это пошагово, иначе приложение может просто сбой без предупреждения о памяти.

1

Я хотел поставить что-то скрытое в моем приложении в режиме отладки, такие как тройной клик по определенной области моего UI, который вызывает это:

- (void) simulateMemoryWarning:(UITapGestureRecognizer *)gesture { 
[[NSNotificationCenter defaultCenter] postNotificationName:TriggerManualMemoryWarningNotification object:nil]; 

}

Тогда в моем приложении делегат :

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveManualMemoryWarning:) name:TriggerManualMemoryWarningNotification object:nil]; 

и

- (void) didReceiveManualMemoryWarning:(NSNotification *)notification { 
#ifdef DEBUG 
    SEL memoryWarningSel = @selector(_performMemoryWarning); 
    if ([[UIApplication sharedApplication] respondsToSelector:memoryWarningSel]) { 
     [[UIApplication sharedApplication] performSelector:memoryWarningSel]; 
    }else { 
     NSLog(@"%@",@"Whoops UIApplication no loger responds to -_performMemoryWarning"); 
    } 
    #else 
    NSLog(@"%@",@"Warning: performFakeMemoryWarning called on a non debug build"); 
    #endif 
} 
+0

спасибо! Я добавил уведомление, чтобы пожать жест, и он отлично работает – akaDuality

Смежные вопросы