Domanda

Nello sviluppo della mia prima applicazione seria iPhone (Significato mi piacerebbe ottenere effettivamente fuori su AppStore), avevo bisogno di un buon modo per rappresentare i miei dati. Invece di andare con i dati di base, I (stupidamente, credo) ha deciso di utilizzare le classi per rappresentare i miei dati.

ho creato tre classi, MMDot, MMShowMovement e MMShow. Il MMShowMovement detiene le istanze della classe MMDot in un array, come il MMShow detiene istanze di MMShowMovement. Sembrava un bel modo per farlo, ogni classe ha un sacco di logica che deve andare con lui, così ho pensato che le classi sembrava un buon modo per andare di rappresentare tutti questi dati.

La mia domanda è: esiste un modo semplice per salvare le istanze di queste classi in modo da poter ripristinare i dati dopo l'applicazione è riaperto? Ho fatto le applicazioni su OS X usando un NSKeyedArchiver, sarebbe simile su iPhone? Sarebbe più facile ricominciare con Core Data, invece (Questi oggetti sono molto complesse, soprattutto MMDot con circa 15 variabili di istanza, ora che lo guardo, forse non così complesso)?

Sono veramente in perdita qui.

È stato utile?

Soluzione

È possibile usare assolutamente NSKeyedArchiver a persistere gli oggetti. Io sono un fan di entrambi i metodi, la decisione spetta per lo più con le vostre esigenze applicative. Io non credo che sarà molto lavoro per ri-modello oggetti in CoreData. Senza sapere nulla circa l'applicazione Direi che se si sta facendo semplice persistenza con un semplice modello potrebbe non essere necessario Core Data, se si dispone di relazioni complesse e sarà la lettura / persistenza dei dati frequentemente durante una sessione di applicazione Core Data è probabilmente il modo di andare.

Altri suggerimenti

Se avete un sacco di istanze di oggetti, si sono probabilmente meglio utilizzare Core Data - che aiuterà le cose della cache, aiutare con le query per ottenere specifici gruppi di oggetti, e così via. KeyArchiving è davvero molto più utile se si sta salvando fuori una manciata di casi, ma ha alcuni aspetti negativi -., In particolare, è più difficile da rintracciare le perdite di memoria da oggetti archiviati

Core Data può anche fare il paging dei risultati anche per voi, in modo che non recuperano nei contenuti Entre di una vasta gamma se non ne hai bisogno.

che cercavo in serializzazione mie classi, l'altro giorno e sono andato con l'utilizzo di NSUserDefaults. Ho solo dare tutti i meccanismi interni dei miei oggetti una chiave univoca in base all'oggetto. Sembrava di lavorare velocemente per me.

ha scritto un blog su di esso qui: http: //technolojiadev.blogspot. com / 2009/12 / serializzare-this.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top