Estoy haciendo una aplicación para iPhone que lee datos del archivo XML, los convierte en objetos administrados por Core Data y los guarda.Error críptico de Core Data: NSInvalidArgumentException, razón: referenceData64 solo se define para la clase abstracta
La aplicación funciona bien, principalmente, en un conjunto de datos/XML más pequeño que contiene ~ 150 objetos. Le dije todo porque el 10% de las veces, me gustaría obtener la siguiente excepción de CoreData al intentar salvar el contexto:
* Terminación de aplicación debido a excepción no detectada 'NSInvalidArgumentException', razón: '* -_referenceData64 solamente definido para la clase abstracta. Definir - [NSTemporaryObjectID_default _referenceData64]! '
En un conjunto de datos más grande (~ 2000), esto ocurre siempre, pero no en el mismo lugar. Podría fallar en el registro número 137, 580 o el último. Intenté mover el punto de guardado (por objeto, por cada 10 objetos, guardar una vez que todos los objetos estén asignados/iniciados) pero siempre toco la excepción anterior.
He buscado en Google la excepción y he visto a alguien que tiene los mismos problemas pero no ha visto ninguna resolución.
Mi siguiente paso consistiría en simplificar los objetos gestionados y las relaciones hasta un punto donde este error se detiene y crear desde allí para aislar el problema. El último recurso es deshacerse de Core Data y simplemente almacenar directamente en sqllite.
¡Gracias por toda su ayuda!
¿Está utilizando alguna entidad abstracta en el modelo? –
Hola Marcus, no usé entidades abstractas, pero estaba usando varios hilos y no me di cuenta de las reglas sobre el uso de datos centrales en hilos. – Brombie
No estoy del todo seguro, pero me parece que tiene una entidad abstracta a la que intenta crear una instancia. ¿Puedes iluminarnos en la herencia? ¡Qué extraño mensaje de error! – beinstein