Domanda

La mia applicazione utilizza NSUSERDeFaults per memorizzare alcuni valori in modo che possa ripristinarli sull'aggiornamento dell'applicazione o se lo scaricamento è uscito.Lo scarico salva automaticamente i miei valori Integer, ma se l'utente disattiva l'applicazione dal launcher, anche i numeri vengono persi e il metodo ViewDidunload che immagino che non si evoca quando si entra nello scarico.C'è un modo in cui posso salvare i NSUSERDeFaults in qualsiasi momento l'applicazione scarica.Inoltre, il metodo ViewDidload ha avuto lo stesso problema, non evoca lo scarico.Cos'è un modo per aggirare questo?

P.S.Finora gli unici dati che la mia applicazione deve essere salvata è un int per un conteggio sullo schermo.

Aggiornamento: UiaplicationDenterBackgroundingNotificazione Lavora fantastico con i tuoi suggerimenti!

È stato utile?

Soluzione

Non è possibile salvare i dati proprio prima che alla fine venga ucciso, ma puoi salvare lo stato 'solo nel caso' nel tuo applicationdenterbackground: app delegate.

C'è anche applicationdidbecomeactive:, ma non c'è motivo per caricare i tuoi dati di salvataggio da lì, dal momento che quando è invocato da un'app che era in background, i dati saranno conservati in alcun modo.

Altri suggerimenti

Non puoi dire se la tua app è stata lanciata da sfondo o meno, almeno come è attualmente configurato, dal momento che il delegato dell'app otterrà la stessa sequenza di eventi se viene lanciato da Springboard.

Come dice Joost, dovresti salvare tutto ciò che è necessario ripristinare lo stato all'interno della richiamata dell'applicazioneDenterbackground;Essenzialmente, dovresti supporre che questo sia l'ultimo messaggio che la tua app prenderà prima che venga ucciso senza pietà da un fattore di processo malvagio.

Dovresti controllare il WWDC 2010 Video di sessione , in particolare, sessione 105- Adottare il multitasking su iPhone OS, parte 1 per una spiegazione approfondita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top