La actualización es tan simple como crear una nueva.
Para actualizar un objeto específico, necesita configurar un NSFetchRequest
. Esta clase es equivalente a una instrucción SELECT en lenguaje SQL.
Aquí un ejemplo sencillo:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Favorits" inManagedObjectContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
// error handling code
La matriz results
contiene todos los objetos gestionados contenidos en el archivo de SQLite. Si quiere agarrar un objeto específico (o más objetos), necesita usar un predicado con esa solicitud. Por ejemplo:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title == %@", @"Some Title"];
[request setPredicate:predicate];
En este caso results
contiene los objetos donde título es igual a Some Title
. Establecer un predicado es igual a poner la cláusula WHERE en una declaración SQL.
Para obtener más información, le sugiero que lea la guía de programación Core Data y la referencia de clase NSFecthRequest
.
espero que ayude.
EDITAR (fragmento que se puede utilizar para actualizar)
// maybe some check before, to be sure results is not empty
Favorits* favoritsGrabbed = [results objectAtIndex:0];
favoritsGrabbed.title = @"My Title";
// save here the context
o si no está utilizando una subclase NSManagedObject
.
// maybe some check before, to be sure results is not empty
NSManagedObject* favoritsGrabbed = [results objectAtIndex:0];
[favoritsGrabbed setValue:@"My title" forKey:@"title"];
// save here the context
En ambos casos, si lo hace un save
del contexto, se actualizarán los datos.
@CroiOS Mi ejemplo es muy simple y no tiene en cuenta la gestión de la memoria. –
gracias. ¿Puede actualizar por favor su publicación y agregar código de ejemplo para actualizar este objeto que grabé? Estoy aquí: Favorits * myObject = [array objectAtIndex: 0]; .. ¿que sigue? – CroiOS
@CroiOS He agregado una edición. Como ya comenté, el código es muy simple y debe verificarlo antes. Esto es solo para guiarlo en la modificación de su objeto administrado una vez recuperado. PD Verifica el código porque he escrito a mano. Espero eso ayude. –