iphone core-data nspredicate nsfetchrequest

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