2015-09-16 26 views
8

Sto creando un'app (in Swift) che deve essere eseguita in modalità offline e online. Quando è in modalità offline, i dati verranno archiviati localmente su CoreData. Una volta rilevata la rete (online), dovrebbe sincronizzarsi con il server e aggiornare il database di back-end. Come si dovrebbe andare su di esso. Ci sono biblioteche o pod?Swift Core Data Sync con server Web

Ho visto this post ma nulla è perseguibile. È troppo alto e non sono sicuro da dove cominciare. Ho visto questo collegamento da Ray Wenderlich ma non so come tradurre in Swift.

Tutti i link tutorial anche essere utile

risposta

8
  1. Aggiungi nuova BOOLattribute al tuo CoreData Entity e denominarlo come synched. Questo fondamentalmente memorizzerà lo stato sincronizzato per ogni oggetto.

  2. Ora è necessario verificare la connettività Internet. Refer to this link

  3. Ogni volta che si dispone di connettività Internet, basta andare a prendere gli oggetti dal CoreData usando la seguente NSPredicate nella vostra richiesta di recupero:

    let isSynchedPredicate = NSPredicate(format: "synched = %@", false) 
    
  4. Ora si può semplicemente utilizzare il webservice per sincronizzare e aggiornare tutti gli oggetti recuperati al server. Su caricare successo, donot dimenticare di modificare la proprietà synched a true

+0

Come si fa a garantire che ogni volta che l'applicazione non caricare di tutto per server..ideally deve solo caricare/scaricare i dati, che non è in sintonia con server .. –

+0

Questo metodo garantirà che gli oggetti con 'synched = false', solo quelli siano aggiornati al server. Se non esiste alcun oggetto di questo tipo, non è necessario eseguire l'aggiornamento-webservice. Ancora una volta, sottolineo il fatto che dopo aver caricato un insieme di oggetti, è necessario impostare l'attributo 'synched' su' false' per tutti quegli oggetti. – Nishant

+0

per caso hai un progetto Xcode di esempio che incorpora questo ... sarà fantastico se puoi condividere ... –