2016-04-21 4 views
0

Ich habe folgende KlassenWie nach einer anderen Klasseneigenschaft mit NSPredicate gefiltert werden?

EntityOne 
- Property1 : string 
- Property2 : int 
- Property3 : Array of EntityTwo 

EntityTwo 
- Property1 : string 
- Property2 : int 

Ich möchte ein NSPredicate, die auf EntityTwoObj.property1 Filter schreiben, wenn ich es auf einem Array durchführen, die EntityOne Objekte enthält.

Ist es möglich?

Ich habe folgende versucht:

NSPredicate *bPredicate = [NSPredicate predicateWithFormat: 
@"Property1 CONTAINS[cd] %@ 
OR Property2 CONTAINS[cd] %@ 
OR Property3.Property1 CONTAINS[cd] %@", 
newString, newString, newString]; 

Aber es funktioniert nicht.

Wenn ich den letzten Filter entfernt habe, funktioniert es dann gut.

+0

Sie benötigen möglicherweise eine "ANY" oder "IN" für die letzte. – Larme

+0

@Larme, vielen Dank, es funktioniert! :) – Hemang

Antwort

0

Dank @Larm, ich könnte es gelöst, indem ich ANY Operator mit meinem Prädikat hinzufügen.

NSPredicate *bPredicate = [NSPredicate predicateWithFormat: 
@"Property1 CONTAINS[cd] %@ 
OR Property2 CONTAINS[cd] %@ 
OR ANY Property3.Property1 CONTAINS[cd] %@", 
newString, newString, newString];