Ho alcune considerazioni su come utilizzare le sottoclassi NSManagedObject di alcuni dati principali per gestire dati persistenti e dati non persistenti.Utilizzo di sottoclassi NSManagedObject per il trasporto di dati persistenti e non persistenti
Supponiamo che tu abbia un'app di ricette che mostra un elenco delle tue ricette da CoreData e in questa stessa app puoi anche cercare le ricette di altri utenti. Queste ricette di altri utenti sono ovviamente da un'API e non vogliamo salvarle nei dati principali. Ma quello che vogliamo invece è il nostro dettaglio della ricetta Visualizza il controller per agire allo stesso modo è data una ricetta persistente o una ricetta non persistente. Naturalmente penso che dovremmo usare lo stesso object wrapper attorno ai nostri dati e lasciare che il nostro View Controller sia cieco sull'origine dei dati.
Il problema è che le sottoclassi NSManagedObject non possono essere inizializzate manualmente e devono essere inserite nel contesto. Non va bene per le ricette degli altri utenti. D'altra parte per le nostre ricette abbiamo bisogno che questi oggetti siano inseriti nel contesto.
Ho in mente un paio di soluzioni, ma mi piacerebbe davvero leggere quello che pensate di questo problema.
Diresti che questo è un problema di implementazione e dovrebbe essere risolto avvolgendo entrambi gli oggetti di dati in un unico oggetto? Per esempio sovrascrivendo tutti i getter e setter per gestire sia gli oggetti coredati che gli oggetti NSDictionary?
Oppure si tratta di un problema di architettura e lo si risolve, ad esempio, annidando NSManagedContext o utilizzando più archivi persistenti (uno in memoria e l'altro Sqlite)?
Questo è molto interessante! Grazie per la segnalazione. –
Non è possibile avere relazioni tra oggetti che non sono inseriti nel contesto per quanto ne so. – svena
Sicuro. Ma non sempre importa. –