Come devo gestire il recupero dei dati memorizzati nella cache in iOS

2

Sto sviluppando un'applicazione al lavoro, questa è la mia prima grande applicazione e nei miei progetti più piccoli non ho usato la cache.

Che cosa sta succedendo attualmente

Quando l'utente accede per la prima volta, deve inserire tutti i dati degli articoli delle notizie, le informazioni sul loro account del sito Web e alcune altre cose. Una volta che ho i dati lo metto in cache.

Quando l'utente naviga verso una schermata in cui sono richiesti i dati, cerco di recuperare e analizzarlo in un oggetto di classe modello prima di tentare di visualizzarlo. Ma come puoi aver indovinato il processo di caricamento / analisi è troppo lento e il mio TableViewController è vuoto.

Quello che ho provato

Ho provato a utilizzare un gestore di completamento per recuperare i dati ma TableViewController è ancora vuoto al caricamento. Mi sembra che i dati debbano essere analizzati e pronti per TableViewController. Ma non sono sicuro di dove / quale sia la pratica migliore per farlo.

Opzioni che sto considerando

Ho pensato di provare ad analizzare immediatamente dopo averlo scaricato in modo da recuperare oggetti già pronti in fase di esecuzione.

Ho preso in considerazione il recupero di tutti i dati incassati e il loro parsing quando l'applicazione prima carica e li memorizza tutti in AppDelegate a livello di classe (probabilmente non è la migliore idea).

Non sono sicuro di quali siano le mie altre opzioni, suppongo sia per questo che sono qui.

La mia domanda

Come devo gestire il recupero dei dati memorizzati nella cache in iOS?

    
posta Dan Beaulieu 14.09.2015 - 23:15
fonte

1 risposta

2

Se disponi di un set di dati a cui devi accedere in più punti, ti consigliamo di utilizzare un singleton.

Crea un modello per i dati, scarica i dati dal back-end, analizzali e memorizzali nel singleton per accedervi più tardi da dove sia necessario. Non ha senso sprecare tutto quel tempo analizzando più volte.

Il problema con tableview è un problema separato. Indipendentemente dalla strategia scelta, l'accesso a molti dati richiederà tempo. Se impiega troppo tempo è sufficiente implementare una schermata di caricamento di qualche tipo. Puoi persino posizionare un UIView semi trasparente sullo schermo con un indicatore di attività che gira.

Una volta che i dati sono stati recuperati, elimina la schermata di caricamento e ricarica la vista tabella. Questo è un approccio standard da adottare. Mettere in pausa l'interfaccia utente o aspettarsi che tutti i dati abbiano un tempo di accesso 0 non sono presupposti / azioni ragionevoli da prendere.

    
risposta data 23.09.2015 - 17:41
fonte