Impossibile per simulare invocando applicationDidReceiveMemoryWarning :?
-
24-10-2019 - |
Domanda
Ecco il codice chiamante:
[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification
object:[UIApplication sharedApplication]];
Non può invocare applicationDidReceiveMemoryWarning:
da UIApplicationDelegate
.
Qualcosa non va?
Soluzione
Non è possibile simulare un avviso di memoria inviando una notifica. Il UIApplicationDidReceiveMemoryWarningNotification
è pubblicato da UIApplication
quando riceve un avviso di memoria, ma non la osserva, e quindi non chiamare il metodo didReceiveMemoryWarning:
tuoi vista controllori quando si registra tale notifica manualmente.
Come Rob già sottolineato, però, è possibile simulare un avviso di memoria nel simulatore iOS utilizzando la voce di menu "Simulazione di memoria Warning".
Si potrebbe anche osservare la notifica nel controller di vista, invece di implementare didReceiveMemoryWarning:
, ma non vorrei raccomandare che, in quanto il comportamento dei controllori di vista forniti dal sistema potrebbe essere diverso quando si simulare una memoria di avvertimento in questo modo.
Altri suggerimenti
Nel simulatore, utilizzare il menu per attivare un avviso di memoria insufficiente.
Quello che dovrebbe funzionare sta usando UIApplicationMemoryWarningNotification
invece di UIApplicationDidReceiveMemoryWarningNotification
:
[[NSNotificationCenter defaultCenter] postNotificationName:@"UIApplicationMemoryWarningNotification"
object:[UIApplication sharedApplication]];