Ho un'app per iPhone ragionevolmente complessa che si basa su un'API per recuperare i dati da un server e visualizzarli all'utente. Ho circa 5 classi di modelli che sono utilizzate in tutta l'app, semplicemente estendono NSObject.Aggiunta di dati principali all'app per iPhone con modelli (normali) esistenti
Desidero aggiungere una certa persistenza ai modelli, per consentire l'utilizzo di alcune parti dell'app anche se il dispositivo è offline, in realtà si tratta in pratica di una cache glorificata. Voglio solo che alcune istanze dei miei modelli vengano mantenute persiste, ad esempio, gli elementi che l'utente ha aggiunto ai segnalibri, mentre altri no, ad esempio centinaia di risultati di ricerca.
I Core Data sono la soluzione giusta per questo? Le difficoltà che posso vedere sono:
- Dovrei cambiare il modo in cui istanziato i miei oggetti modello in tutto il progetto. Dovrei inizializzarli come parte di un contesto, il che non ha necessariamente senso se provengono effettivamente da un'API esterna.
- Avrei bisogno di stare attento a non persistere istanze che non voglio. Questo sembra ridursi a uno l'eliminazione di un oggetto gestito subito dopo è stato creato (davvero imbarazzante) oppure utilizzando un contesto non-persistente separata per le istanze non voglio persisteva (meglio, ma ancora un po 'scomodo)
Speravo di poter continuare a utilizzare i miei modelli in tutta l'app senza modificare il codice che non ha bisogno di preoccuparsi della persistenza, ma ciò non sembra fattibile date le mie esigenze. L'alternativa è impostare un nuovo set di oggetti gestiti in parallelo ai miei oggetti esistenti e utilizzare solo gli oggetti gestiti per la persistenza, ma questo tipo di duplicazione non sembra mai la soluzione giusta.
Dovrei provare a calzare Core Data in questo, e se sì, come? O dovrei semplicemente guardare altre opzioni - sqlite3 (sembra un po 'complicato per quello di cui ho bisogno), impostazioni predefinite dell'utente (probabilmente non per quello a cui sono destinate), o anche serializzare e scrivere i miei oggetti su file (sembra hack-ish).
Grazie per qualsiasi input!
Grazie! Non posso credere di aver perso NSKeyArchiver. Darò un colpo - potrebbe essere esattamente quello di cui avevo bisogno. –
Nessun problema, felice di aiutare (: –