Coredata performBlock y luego devuelve el nuevo valor
Cómo devolver el nuevo objeto guardado en coredata si estoy usandoperformBlock
para guardar un ManageObjectContext?
El requisito es agregar una entrada en coredata y devolverla. Mi código es algo como esto:
//create a privateMOC
NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
//set parentContext
[private setParentContext:self.coredataManager.managedObjectContext];
__block Detail *object = nil;
[private performBlock:^{
//fetch from the db
object = [self.coredataManager insertObjectWithEntityName:NSStringFromClass([Detail class])];
//save the private context
NSError *error = nil;
if (![private save:&error]) {
NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]);
}
}];
return object;
Aquí, dado que el guardado está ocurriendo en Block, la devolución se ejecutará primero. Pero necesito elobject
Con el último valor. Cualquier sugerencia por favor.