/ / Copia dei file CoreData di iPhone da un progetto a un altro - iphone, core-data

Copia di file iPhone CoreData da un progetto a un altro - iphone, core-data

Sto provando a creare 2 app, una che crea un negozio persistente e un'altra che lo consuma.

Finora ho creato un'app che utilizza CoreData per creare correttamente un database da un file XML. Quindi questo progetto contiene il modello di dati, i file .h / .m per le entità, ecc.

Sto ora cercando di abilitare la seconda app a leggere quel file .sqlite copiando il file del modello di dati, i file .h / .m relativi alle entità e il file sqlite a quel progetto (tramite aggiungi esistente).

Il codice viene eseguito ma non riesce sempre a trovare alcun oggetto nel database.

Ci sono restrizioni o passaggi corretti da adottare quando si tenta di copiare su questi file?

risposte:

3 per risposta № 1

La soluzione qui è ingannevolmente semplice.

Copia il tuo.file xcdatamodel da un progetto a un altro e quindi quando si esegue l'app nel simulatore per la prima volta, verrà creata una cartella Documenti per l'app. È sufficiente rilasciare i file .sqlite o .binary salvati nella directory App / Documenti nella dispositivo. Puoi trovare la directory del simulatore in "~ utente / Libreria / Supporto applicazioni / Simulatore iPhone".

Puoi anche scaricare, modificare e caricare la directory myApp su un iPhone con provisioning trascinando e rilasciando dentro e fuori l'Organizer. Guarda l'elenco delle applicazioni.

L'iPhone non supporta i negozi xml con coredati, solo sqlite o atomici (binari). Lo store sqlite è di gran lunga l'opzione migliore per la maggior parte delle applicazioni poiché non deve essere caricato in memoria durante l'esecuzione.

È questo che intendevi?


0 per risposta № 2

Penso (non sicuro al 100 percento) nel tuo plist di app, se imposti il ​​nome del bundle dell'applicazione sulla stessa cosa, condivideranno le risorse perché il dispositivo penserà di essere la stessa applicazione ...


0 per risposta № 3

Non credo che funzionerà cosìlo vuoi tu. Su iPhone, ogni applicazione viene eseguita nella propria "sandbox" e non è davvero possibile per un'applicazione scrivere file leggibili da un'altra.


0 per risposta № 4

Sono davvero due progetti diversi o due obiettivi nello stesso progetto? Ciò sembrerebbe molto più sensato, quindi puoi condividere oggetti entità mentre cambiano.


0 per risposta № 5

Per la copia di file di dati principali da un progetto aun altro, ho prima creato un nuovo progetto con supporto per i dati core e poi ho aperto i contenuti del file coredata precedente e, tranne il tag root, ho incollato tutti i tag figlio nel nuovo file di dati core nel nuovo progetto. In precedenza ho provato a eliminare il file coredata nel nuovo progetto, ho incollato il precedente e ho cambiato il suo nome e non funzionava.