Tengo un problema extraño en mi aplicación Core Data.Problema de almacenamiento de datos centrales: no se puede actualizar el atributo transformable (NSArray)
Tengo tres entidades en mi aplicación, pero hoy he encontrado un problema con una de ellas. Mi entidad problemática se llama Invoice
y tiene muchos atributos, incluido Products
. Está codificado NSArray de NSDictionaries (a través de NSValueTransformer predeterminado).
Todo funciona bien, creo mi factura, su cliente, sus productos, etc. Todo funciona.
Pero, cuando elijo mi factura de una lista y luego trato de editar sus productos y hago clic en el botón "Guardar", mi guardado solo funciona hasta que se termina mi aplicación.
El problema es solo con mi matriz products
; el resto (por ejemplo, fecha de pago, cliente, etc.) se guarda.
¿Qué estoy haciendo
yo paso mi objetivo Invoice
través
NSManagedObject *inv = [self.fetchedResultsController objectAtIndexPath:indexPath];
invoiceEditor.invoice = inv;
Y guardar mis datos (en mi InvoiceEditor
VC):
[self.invoice setValue:client forKey:@"Client"] // NSDictionary;
[self.invoice setValue:products forKey:@"Products"] // NSArray of NSDictionaries;
[self.invoice setValue:pmDate forKey:@"PaymentDate"] // NSDate;
// other attributes
NSManagedObjectContext *context = self.invoice.managedObjectContext;
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
Everythings ahorra hasta que se termine: cliente, pr oductos, fechas. Pero solo los productos son 'reseteados' después de la terminación.
¿Alguien?
Aclaración: ¿Qué quiere decir con "productos reestablecidos"? ¿Quiere decir que el atributo del producto no se guarda? ¿Quiere decir que revierte a un valor anterior? En otras palabras, ¿qué *** esperar ver *** para el atributo 'productos' después de reiniciar y qué *** ver realmente ***? – TechZen
¿Alguna razón en particular por la que no está utilizando una entidad y una relación en lugar de un conjunto de objetos NSDictionary dentro de un NSArray? Esa es una configuración muy engorrosa y (lo más probable) lenta. – TechZen
1. Quiero decir que el atributo de productos se guarda pero después de que mi aplicación se termina, vuelve al valor anterior. 2. No utilizo la relación porque necesito los productos todo el tiempo, incluso si el usuario los ha eliminado.Tengo una entidad llamada 'Producto', pero en mi 'Factura' estoy almacenando su copia. – akashivskyy