2010-03-26 15 views
9

Tengo 2 entidades, Tarea y Lista. Cada tarea tiene una relación uno a uno con un objeto List llamado "list", y hay una relación inversa con List, que tiene una relación to-many con Task llamada "tasks".Datos principales - NSPredicar para filtrar la relación de muchos

Estoy tratando de utilizar una solicitud de búsqueda con un NSPredicate para conseguir todos los objetos de tareas que pertenecen a una lista específica:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list=%@", theList]; 
[fetchRequest setPredicate:predicate]; 

(donde "theParent" es una referencia a un objeto de lista). Sin embargo, esto no devuelve ningún objeto recuperado. Si elimino el predicado, se devuelven los objetos (entonces sé que existen, y por NSLogging theList sé que tiene objetos Tarea asociados).

Gracias

Respuesta

11

¿Podría ser un simple error en su predicado?

Usted tiene "list =% @" cuando asumo lo que realmente quiere es "lista ==% @"

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list == %@", theList]; 
[fetchRequest setPredicate:predicate]; 
+3

"=" funciona de la propiedad, pero no la relación. – zsong

+4

kharrison y/o @sza: ¿Puedes aclarar a qué te refieres? [La documentación NSPredicate] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-215832) afirma que '= 'y' == 'son 100% equivalentes cuando se usan en cadenas de formato de predicado. ¿Hay una diferencia no documentada? – Quuxplusone

Cuestiones relacionadas