Además de emitir manualmente una memoria de advertencia en el simulador, puede emitir una programáticamente con
- (void)_simulateLowMemoryWarning {
// Send out MemoryWarningNotification
[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification
object:[UIApplication sharedApplication]];
// Manually call applicationDidReceiveMemoryWarning
[[[UIApplication sharedApplication] delegate] applicationDidReceiveMemoryWarning:[UIApplication sharedApplication]];
}
A continuación, puede hacer que esto suceda cada 5 segundos usando un temporizador
static NSTimer *gLowMemoryTimer = nil;
- (void)stopLowMemoryTimer {
[gLowMemoryTimer invalidate];
gLowMemoryTimer = nil;
}
- (void)startLowMemoryTimer {
if (gLowMemoryTimer) {
[self _stopLowMemoryTimer];
}
gLowMemoryTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(_simulateLowMemoryWarning) userInfo:nil repeats:YES];
}
Parece que no se llama necesariamente; un UIViewController puede desasignarse sin llamar primero a viewDidUnload. – beetstra
Después de una extensa prueba, definitivamente veo que viewDidUnload NO se puede llamar a veces. Veo que los controladores de vista se desasignan sin que se llame a viewDidUnload. –
Esta pregunta debe ser eliminada. viewDidUnload está en desuso y ya no se llama en iOS 6. –