Domanda

Ecco il codice chiamante:

[[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification
                                                    object:[UIApplication sharedApplication]];

Non può invocare applicationDidReceiveMemoryWarning: da UIApplicationDelegate.

Qualcosa non va?

È stato utile?

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.

entrare descrizione dell'immagine qui

Quello che dovrebbe funzionare sta usando UIApplicationMemoryWarningNotification invece di UIApplicationDidReceiveMemoryWarningNotification:

[[NSNotificationCenter defaultCenter] postNotificationName:@"UIApplicationMemoryWarningNotification"
        object:[UIApplication sharedApplication]];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top