No se puede simular invocar aplicaciones de AplicationDidReceIvememoryWarning:?
-
24-10-2019 - |
Pregunta
Aquí está el código de llamadas:
[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification
object:[UIApplication sharedApplication]];
No puede invocar applicationDidReceiveMemoryWarning:
de UIApplicationDelegate
.
¿Nada malo?
Solución
No puede simular una advertencia de memoria publicando una notificación. los UIApplicationDidReceiveMemoryWarningNotification
se publica por UIApplication
Cuando recibe una advertencia de memoria, pero no la observa y, por lo tanto, no llama a sus controladores de vista ' didReceiveMemoryWarning:
Método cuando publica una notificación de este tipo manualmente.
Sin embargo, como Rob ya señaló, puede simular una advertencia de memoria en el simulador de iOS utilizando el elemento del menú "Simular la advertencia de memoria".
También puede observar la notificación en sus controladores de visión, en lugar de implementar didReceiveMemoryWarning:
, pero no recomendaría eso, porque el comportamiento de los controladores de visión suministrados por el sistema podría ser diferente cuando finges una advertencia de memoria de esa manera.
Otros consejos
En el simulador, use el menú para activar una advertencia de memoria baja.
Lo que debería trabajar es usar UIApplicationMemoryWarningNotification
en vez de UIApplicationDidReceiveMemoryWarningNotification
:
[[NSNotificationCenter defaultCenter] postNotificationName:@"UIApplicationMemoryWarningNotification"
object:[UIApplication sharedApplication]];