Core Data NSPredicate "eliminado == NO" no funciona como se esperaba
Estoy usando UIManagedDocument con el contexto de Parent Child.
En el contexto de mi hijo hago lo siguiente
Código 1NSSet *results = [self.event.memberships filteredSetUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
return ([[evaluatedObject deleted] boolValue] == NO);
}]];
El código anterior devuelve los resultados esperados (solo los miembros No eliminados para el evento).
Código 2Pero este código no lo hace. Obtiene todos los registros.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deleted == NO"];
NSSet *results = [self.event.memberships filteredSetUsingPredicate:predicate];
Parece confuso. Ambos deberían devolver los mismos resultados, peropredicateWithBlock
devuelve resultados correctos donde comopredicateWithFormat
devuelve todos los registros.
¿Cuáles son los pros y los contras de usarpredicateWithBlock
en lugar depredicateWithFormat
?