iphone - ¿Puedo aplicar predicados múltiples a NSFetchRequest? ¿Sería mejor analizar manualmente mis resultados?
core-data nspredicate (2)
Swift 4
let fetchRequest: NSFetchRequest<YourModelEntityName> = YourModelEntityName.fetchRequest()
let fooValue = "foo"
let barValue = "bar"
let firstAttributePredicate = NSPredicate(format: "firstAttribute = %@", fooValue as CVarArg)
let secondAttributePredicate = NSPredicate(format: "secondAttribute = %@", barValue as CVarArg)
fetchRequest.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [firstAttributePredicate, secondAttributePredicate])
más información sobre diferentes tipos de constructores de NSCompoundPredicate
se puede encontrar here
Ok, tengo una aplicación básica de iPad que solicita 5 criterios de búsqueda / filtro del usuario. En base a estos datos, necesito ir a mi base de datos de base de datos y retirar cualquier objeto administrado que se ajuste a ese criterio. Parece que necesito aplicar más de un predicado a la misma solicitud, ¿es posible? ¿O podría simplemente escribir un predicado realmente largo y elegante? Con múltiples requisitos? ¿Cómo debería abordar eso?
¿Sería una buena idea simplemente tomar todas las entidades a través de la solicitud de búsqueda, y luego recorrer cada matriz y tomar cualquier objeto que encuentre que se ajuste a mis criterios de búsqueda?
¡Por favor avise!
Si es posible. Está buscando predicados compuestos y aquí hay un ejemplo con predicados AND:
NSPredicate *compoundPredicate
= [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray of Predicates]];
También puede usar notPredicateWithSubpredicates
y orPredicateWithSubpredicates
dependiendo de sus necesidades.
Enlace a la documentación https://developer.apple.com/documentation/foundation/nscompoundpredicate