Tengo que almacenar un objeto de clase personalizado en Coredata. El problema es que mi clase personalizada contiene estructuras, enum, etc. Intenté seguir el método.Cómo almacenar objetos personalizados con struct en Coredata
- (void) encodeWithCoder: (NSCoder *) encoder.
Pero estoy consiguiendo este error
[NSKeyedArchiver encodeValueOfObjCType: en:]: este archivador no puede codificar estructuras
¿Cuál es la mejor práctica para almacenar este objeto para CoreData. Por favor, ayúdame.
usando dataWithBytes: length: no es portable entre diferentes plataformas endian o 32/64 bit. El uso de esto ocasionará que los datos anteriores se peguen al dispositivo dado y los usuarios no podrán actualizar a diferentes plataformas o transferir/abrir el archivo en una plataforma diferente a la que se creó. –
@Brent Claro ... pero la pregunta es sobre iPhone y creo que esto debería funcionar bien durante unos años ... y si Apple cambiará el hardware, creo que (a) tendrán un período usando un emulador para traerlo tanto software como sea posible (b) el programa deberá ser recompilado y puede ser reparado cuando sea necesario (si es necesario) ... y es solo un problema para "datos" creados/almacenados en un tipo de hardware, que es transferido a una nueva arquitectura diferente ... – epatel
@epatel Tengo clientes en PPC e Intel transfiriendo archivos de copia de seguridad CoreData a/desde un iPhone. Esta recomendación me habría causado dolor de cabeza si lo hubiera escuchado. Puedes construir el código ARM 6/7 para iPhone, no es exagerado pensar en binarios de grasa de 32/64 bits en el futuro. Este fue un comentario "ten cuidado", y recomiendo el método NSCoder que se menciona a continuación, es seguro para siempre no solo a corto plazo "durante algunos años". –