objective objective-c cocoa ios core-data nspredicate

objective-c - nspredicate objective c



Filtrar los datos de Core Data por propiedad IN array (1)

Prueba esto:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tid IN %@", filterArray]; [request setPredicate:predicate];

Eche un vistazo a las Operaciones agregadas en la Guía de programación de predicados .

EDITAR

Eche un vistazo a NSPredicate iPhone 3.2 SDK Core Data excepción "IN cláusula" NSInvalidArgumentException . Es el mismo error que tienes. El problema fue un error tipográfico en el nombre de la columna / atributo. La sintaxis debería estar bien, no puede simplemente encontrar tid .

Actualmente tengo Core Data que devuelve con éxito todos los resultados para una entidad específica titulada Event :

NSManagedObjectContext *context = [delegate managedObjectContext]; NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:context]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; [request setEntity:entityDescription]; NSError *error; NSArray *fetchResults = [context executeFetchRequest:request error:&error];

Una propiedad de la entidad Evento es una cadena llamada tid . También tengo un array de filterArray array que contiene todos los valores tid permitidos.

¿Cómo puedo obtener que mi solicitud de Datos básicos solo devuelva eventos que tengan una propiedad tid que coincida con uno de los valores en filterArray ? Creo que la respuesta se relaciona con NSPredicate, pero aún no estoy lo suficientemente familiarizado para que se doble a mi voluntad.