2015-06-18 2 views
5

Sto creando un'app social network in cui l'utente può creare gruppi, pubblicare immagini, aggiornare le immagini. eccSalva qualsiasi PFObject non salvato Anche l'utente termina l'app

Il problema che sto vivendo è che a volte, durante il processo di salvataggio dei dati su Parse, l'utente può terminare l'app.

Mi chiedo se non ci sono soluzioni alternative a questo problema? Posso comunque recuperare tutti i PFObject non salvati e salvarli?

+0

Perché non salvare i dati nel 'applicationWillTerminate' di AppDelegate? – Pranav

+0

@pranav applicationWillTerminate dà solo 5 secondi. Mentre potrebbe richiedere più tempo poiché carica i dati su Analizza – JayVDiyk

+0

In tal caso, potresti voler utilizzare 'NSURLSession'. Continuerà a caricare in background anche se il sistema uccide la tua app. Tuttavia, se l'utente interrompe la tua app, verrà annullata. – Pranav

risposta

3

saveEventually è abbastanza buono per voi?

Il vantaggio è che se l'utente attualmente non dispone di una connessione di rete, saveEventually memorizzerà l'aggiornamento sul dispositivo fino a quando non viene ristabilita una connessione di rete. Se la tua app viene chiusa prima che la connessione venga ripristinata, Parse proverà di nuovo al prossimo avvio dell'app.

PFObject *gameScore = [PFObject objectWithClassName:@"GameScore"]; 
gameScore[@"score"] = @1337; 
gameScore[@"playerName"] = @"Sean Plott"; 
gameScore[@"cheatMode"] = @NO; 
[gameScore saveEventually]; 

Oppure è possibile dichiarare la vostra applicazione supportata background tasks, in modo che quando l'applicazione non è in primo piano, si può ancora caricare i dati (o trasferire).

+0

Ho provato a salvareEventually prima di postare qui. SaveEventually non fa il trucco. Ho provato a caricare un pfobject e lo interrompo subito. SaveEventually non ha aiutato, non ci riprova dopo che l'app ha riavviato @iforests – JayVDiyk

+0

Il backgroundtask funzionerebbe anche se l'utente forzasse trrminate l'app? – JayVDiyk

+1

No. Non succederà. Android può utilizzare un servizio, ma non iOS. E se saveEventually non ha sincronizzato i dati dopo il riavvio dell'app, potrebbe esserci un bug in Parse SDK o hai appena terminato l'app troppo velocemente. – iForests