Sto facendo un'app per iPhone che legge i dati dal file XML, li trasforma in oggetti gestiti da Core Data e li salva.Errore criptico dai dati principali: NSInvalidArgumentException, motivo: referenceData64 definito solo per la classe astratta
L'applicazione funziona bene, principalmente, su set di dati più piccoli/XML che contiene ~ 150 oggetti. Ho detto soprattutto perché il 10% del tempo, mi piacerebbe avere la seguente eccezione da CoreData durante il tentativo di salvare il contesto:
* Chiusura di applicazione a causa di eccezione non identificata 'NSInvalidArgumentException', la ragione: '* -_referenceData64 solo definito per classe astratta. Definisci - [NSTemporaryObjectID_default _referenceData64]! '
Su un set di dati più grande (~ 2000), ciò accade ogni volta, ma non nello stesso punto. Potrebbe fallire nel 137 ° record, 580 ° o ultimo. Ho provato a spostare il punto di salvataggio (per oggetto, per 10 oggetti, salvare una volta che tutti gli oggetti sono alloc/init) ma ho sempre colpito l'eccezione sopra.
Ho cercato su google l'eccezione e ho visto qualcuno che ha gli stessi problemi ma non ha visto alcuna risoluzione.
Il mio prossimo passo sarebbe semplificare gli oggetti gestiti e le relazioni fino al punto in cui questo errore si interrompe e si costruisca da lì per isolare il problema. L'ultima risorsa è quella di abbandonare Core Data e archiviare direttamente in SQLite.
Grazie per tutto il vostro aiuto!
Si sta utilizzando qualsiasi entità astratta nel modello? –
Ciao Marcus, non ho usato entità astratte ma stavo usando più thread e non mi ero reso conto delle regole sull'uso dei Core Data nei thread. – Brombie
Non ne sono del tutto sicuro, ma mi sembra che tu abbia un'entità astratta che stai cercando di istanziare. Puoi illuminarci sull'eredità? Che strano messaggio di errore! – beinstein