2011-11-14 6 views
28

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?¿Puedo aplicar predicados múltiples a NSFetchRequest? ¿Sería mejor analizar manualmente mis resultados?

¿Sería una buena idea simplemente tomar todas las entidades a través de la solicitud de búsqueda, y luego recorrer cada conjunto y tomar cualquier objeto que encuentre que se ajuste a mis criterios de búsqueda?

Por favor, asesóran!

Respuesta

80

Sí, es posible. Usted está buscando los predicados compuestos y he aquí un ejemplo con y predicados:

NSPredicate *compoundPredicate 
    = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray of Predicates]]; 

También puede utilizar notPredicateWithSubpredicatesorPredicateWithSubpredicates y en función de sus necesidades.

Enlace a la documentación https://developer.apple.com/documentation/foundation/nscompoundpredicate

+2

hombre Gracias, he intentado hacer esto mediante la composición de una NSString y pasándolo a predicado como el formato. Esto funcionó bien, pero no para las fechas. Perdí un día de trabajo. Esta es la forma de crear filtros: D – MQoder

Cuestiones relacionadas