2011-09-27 2 views
0

Je suis coincé avec la ligne ci-dessous et je ne suis pas avoir beaucoup de connaissances sur CoreData,problème nspredicate avec opération ET

`NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(bookPath == %@) AND (accessed==%u)) AND (isCurrentSession==%u)", myString,[NSNumber numberWithBool:NO],[NSNumber numberWithBool:_accessed]];` 

jusqu'à maintenant j'envoyé deux valeurs à mon prédicat, dans le prédicat ci-dessus j'utilise trois valeurs,

Ma question: peut-on appliquer deux opérations AND dans un seul prédicat, quelqu'un peut-il fournir une idée à ce sujet.Merci à l'avance.

+1

Vous utilisez une substitution '% en u' (' de int' non signé), mais vous remplacer dans un '' NSNumber *. Cela va causer des problèmes. Utilisez soit% @ 'pour toutes les substitutions, soit ne mettez pas votre' BOOLs 'dans 'NSNumbers'. –

+0

merci pour votre réponse, votre absolument correct j'ai modifié l'erreur. – ajay

Répondre

0

Oui, vous devriez être en mesure de combiner prédicats avec « ET » et « OU » à un niveau arbitraire de complexité. La grammaire de l'analyseur formel pour la syntaxe sous-jacente se trouve here. Pour de meilleures performances, vous devez trier vos termes prédicats de manière à ce que les tests simples (par exemple, les comparaisons numériques) apparaissent en premier dans la chaîne de format et que les tests plus complexes (par exemple REGEX) apparaissent en dernier.

+0

BTW, vous ne dites pas vraiment dans votre question de savoir si vous avez essayé et que vous rencontrez des problèmes ou si vous voulez juste savoir à l'avance. –

+0

merci pour votre relecture rapide vos liens est génial. – ajay

Questions connexes