modo migliore per salvare / caricare i dati di gioco dell'iPhone
-
08-07-2019 - |
Domanda
Sto lavorando a un puzzle game, il motore di gioco contiene una complessa gerarchia di oggetti, dagli attori del gioco ai vettori fino alle animazioni di transizione. A seconda dello stato del gioco, potrebbero sommarsi da 10 a 1000 (in casi estremi). Ho ritardato il momento fino a quando non avrei dovuto lavorare sul salvataggio e il caricamento di tutto quel casino, poiché non ho esperienza su questo, ma ora il momento che temevo sta per arrivare.
È una buona idea usare NSKeyedArchiver per questo? Il suo concetto sembra potente. In questo modo ho potuto ricostruire gli stati degli oggetti, ma include i puntatori tra gli oggetti salvati? E come si comporta dal punto di vista delle prestazioni? Il sistema avrà il tempo di salvare tutti questi oggetti sul disco al termine dell'app?
Soluzione 2
Ho scelto NSKeyedArchiver, che mantiene i riferimenti tra gli oggetti. Vedi qui: Modo semplice per archiviare oggetti interconnessi
Altri suggerimenti
NSKeyedArchiver è piuttosto potente, ma non ti consente di conservare i collegamenti tra gli oggetti (a meno che non li aggiungi dopo l'archiviazione). Se puoi / devi archiviare atomicamente l'intero set di dati, allora NSKeyedArchiver è probabilmente la strada da percorrere, ma ci sarà un po 'di reidratazione' da parte tua se c'è qualcosa di più complesso delle relazioni padre-figlio.
Abbiamo una complessa gerarchia di oggetti dati, li archiviamo in un database SQLite e li ricolleghiamo quando li estraiamo.