Esto es realmente molesto conmigo. En Objective-C, tengo una entidad Item
con un atributo booleano Deleted
. Me gustaría ser capaz de establecer el valor de Deleted
a SÍ o 1.¿Por qué no puedo actualizar el valor booleano del atributo de mi entidad de datos central?
Este es mi código:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSString *itemID = [[fetchedObjects objectAtIndex:(int)[currentTable selectedRow]] valueForKey:@"ItemID"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ItemID = %@", itemID];
[fetchRequest setPredicate:predicate];
NSError *error = nil;
Item *objectToDelete = [[managedObjectContext executeFetchRequest:fetchRequest error:&error] objectAtIndex:0];
if (objectToDelete == nil) {
NSLog(@"ERROR");
}
[fetchRequest release];
[objectToDelete setValue:[NSNumber numberWithBool:YES] forKey:@"Deleted"];
[managedObjectContext save:&error];
Algo a destacar es que soy capaz de cambiar con éxito diferentes atributos; por ejemplo: agrego la cadena -DEL al final de los atributos Item
y Name
. Cuando veo una tabla de datos, las cadenas para esos valores se actualizan correspondientemente, sin embargo, el valor de Deleted
continúa siendo 0.
¿Cómo se ve la descripción de su entidad? ¿Utiliza tipos integrales nativos? ¿Qué obtiene cuando llama a valueForKey? @ "Eliminado" –
El archivo de encabezado de mi entidad para Artículo tiene NSNumber * Suprimido. En el modelo de datos básicos aparece como booleano. Cuando invoco a valueForKey: @ "Eliminado" después de haber cambiado ed it, imprime "0". – Rail24
¿Su atributo se declara como transitorio? Luego, intente poner una declaración de registro antes y después de la actualización. Házmelo saber. –