2010-01-14 7 views
0

J'ai un ensemble de données où l'un des attributs (Firmware) est une relation un-à-plusieurs.cacao iphone core-data predicate fetchrequest un-à-plusieurs

Si je veux obtenir des enregistrements où l'ID du firmware est 1 je peux créer un prédicat en utilisant

@"(ANY Firmware.FID==1)" 

Puis j'ai une autre série de conditions qui affiner l'ensemble encore plus en utilisant

(TopLevel==YES) AND (Parent>0) 

Comment puis-je les combiner ou les configurer pour qu'il filtre d'abord le firmware puis qu'il filtre la deuxième condition? En fin de compte, je veux tous les enregistrements où Firmware.FID = 1 et TopLevel == YES et Parent> 0.

Merci, Howie

Répondre

2

Vous devriez pouvoir utiliser ce prédicat:

[NSPredicate predicateWithFormat:@"TopLevel == %@ AND Parent > %@ AND ANY Firmware.FID == %@",[NSNumber numberWithBool:YES],[NSNumber numberWithInteger:0],[NSNumber numberWithInteger:1]]; 

je me suis déplacé la condition sur « TOUT Firmware.FID » dernier car il est le plus complexe et il peut être évitée si l'une des autres conditions a déjà échoué.