2011-10-21 5 views
5

Sto lavorando a un gioco e tutti i progressi effettuati dall'utente saranno salvati con NSUserDefaults. È una buona o una cattiva idea ???Salvataggio dell'avanzamento del gioco con NSUserDefault: buona o cattiva idea?

Quali sono le possibilità di perdere la partita? C'è un modo migliore per farlo?

Quando l'utente sincronizza il dispositivo, iTunes NSUserDefaults di backup? Quindi nel caso in cui l'utente cambi il suo dispositivo non perderà i progressi, deve solo sincronizzare il dispositivo con iTunes? Quanto è sicuro?

risultati GameCenter verrà salvato con NSUserDefaults pure, nel caso in cui l'utente non dispone di una connessione internet al momento.

Beh, voglio solo sapere la vostra opinione/esperienza. Tutto il codice funziona in modo impeccabile, ma temo che il giocatore possa perdere i suoi progressi per qualche motivo.

se qualcuno vuole maggiori dettagli sul codice caduto liberamente per chiedere, posso postare qui.

Grazie!

+1

uno anche io sono stato curioso di questo e la tua domanda mi ha aiutato a Allot, anche se ho controllato e stato soddisfatto con 'NSUserDefault', ma la curiosità mi porta a banca su banca dati .. Ora non c'è la curiosità più, molte grazie per questa domanda – rptwsthi

risposta

4

NSUserDefaults vengono sincronizzate con iTunes se l'utente sincronizza l'applicazione. I dati sono al sicuro finché l'utente non cancella il gioco.

Se è necessario conservare i dati anche dopo che l'utente elimina il gioco, si può considerare il salvataggio dei dati da qualche altra parte (per esempio, Dropbox, server, ecc)

+0

Grazie per la risposta. Stavo pensando di memorizzare sul mio server, quindi sarebbe in grado di sincronizzare il gioco su più dispositivi, ad esempio se l'utente ha un iPhone e un iPad. Qualche idea su come fare, esportare NSUserDefaults su un server? Nessun codice, solo qualcosa che posso ricercare sarebbe fantastico. – tomDev

+2

È possibile utilizzare iCloud per tale backup, ricorda solo che l'equivalente iCloud di NSUserDefaults è limitato a 64 kb come – EmilioPelaez

+1

Serializza in un dizionario JSON e "POST" a uno script sul tuo server insieme al nome utente (se hai account). All'avvio, 'GET' dallo stesso URL e restituisce un oggetto del dizionario JSON che si deserializza in un' NSDictionary' e importa manualmente in 'NSUserDefaults'. Fai attenzione ai casi limite, ad esempio quando entrambi i dispositivi di un utente hanno già in esecuzione il gioco e uno di questi aggiorna le impostazioni. Che cosa vuoi fare? Sincronizzazione continua? Sovrascrivi con tutte le impostazioni dell'istanza corrente? – darvids0n

9

A mio parere, NSUserDefaults è perfettamente sicuro. I contenuti vengono mantenuti anche dopo un aggiornamento della versione dell'app.

+0

semplice e giusta risposta –

+0

+ 1 @ ZakyGerman ha perfettamente ragione. – rptwsthi