2017-04-14 2 views
2

zu filtern Ich habe eine many-to-many Beziehung mit zwei Entitäten. Einer ist Person, der andere ist Clubs. Ich möchte in der Lage sein, ein predicate zu schreiben, das alle Person Entities findet, die sich in einem bestimmten Club befinden. Ich möchte auch das Attribut position dieser Person überprüfen.NSPredieren, um Core Data Relationship NSSet nach Attribut

hier, was nicht funktioniert:

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:[NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext]]; 
[request setPredicate:[NSPredicate predicateWithFormat:@"position CONTAINS[cd] %@ AND IN %@", @"manager", self.clubs.people]]; 
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:nil]; 

Dieser mit Fehler abstürzt:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "title CONTAINS[cd] %@ AND IN %@"'

Ich weiß, dass ich etwas tue hier falsch, jede mögliche Hilfe?

+1

Versuchen SELF mit auf die Person Objekt selbst zu beziehen, anstatt ein Attribut: '[NSPredicate predicateWithFormat: @" Position ENTHÄLT [cd]% @ UND SELF IN% @ ", @" manager ", self.clubs.people]' – pbasdf

Antwort

2

Wie von @pbasdf oben erwähnt, sollten Sie selbst verwenden. Allerdings wäre die Abfrage viel effizienter mit der Selbst Klausel zunächst dh

[NSPredicate predicateWithFormat:@"SELF IN %@ AND position CONTAINS[cd] %@", self.clubs.people, @"manager"]; 
+0

Danke! Das hat funktioniert! –

Verwandte Themen