Il modo migliore per aggiornare l'interfaccia utente quando si ha a che fare con la sincronizzazione dei dati

0

Sto lavorando su un bug al lavoro. L'app è scritta in Objective-C per dispositivi basati su iOS, per l'iPad. Sono il nuovo ragazzo lì e mi è stato dato un compito difficile. A volte, la proprietà di testo UIButton non mostra lo stato corretto durante la sincronizzazione. Fondamentalmente, quando l'app è in fase di sincronizzazione, il mio controllo dell'interfaccia utente direbbe "Sincronizzazione" e quando non si sincronizzerà visualizzerà "Aggiornato @ [data specifica]". Al momento, sul delegato dell'app è presente una proprietà denominata "SyncInProgress". Quando si esegue una query / sincronizzazione, che si verifica sul thread in background, aggiorna un contatore. La proprietà restituirà un'espressione di controllo bool 'counter > 0' .

Ci sono tre stati che devo trattare. La sincronizzazione è iniziata. La sincronizzazione sta aggiornando le tabelle. Sincronizzazione completata.

Questi articoli devono essere visualizzati in ordine.

Il mio collega ha suggerito di adottare un approccio basato sullo stato invece di limitarsi a rispondere agli eventi. Non sono sicuro di come procedere in merito.

Sarebbe meglio che l'interfaccia utente ricevesse una notifica per determinare in che stato si trovava o per estrarla ogni tanto se lo stato cambia?

Ecco due post che ho inserito su StackOverflow, negli ultimi giorni, relativi a questo.

link

link

Qualche idea che qualcuno possa apprezzare molto.

Grazie,

developerDoug

    
posta developerdoug 15.06.2012 - 05:23
fonte

1 risposta

1

Se stai scaricando i dati per la sincronizzazione utilizzando qualcosa come NSURLConnection, ci sono dei call back delegati per quando viene effettuata la connessione (sincronizzazione avviata), i dati vengono scaricati (sincronizzazione) e il download dei dati è terminato (sincronizzazione conclusa). Anche se non si utilizza NSURLConnection, in particolare, la maggior parte dei framework di connessione Web asincrona ha lo stesso tipo di modello di delega.

    
risposta data 15.06.2012 - 16:41
fonte

Leggi altre domande sui tag