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 № 1La 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.