format string
chaps31
Membre
Bonjour à tous,
Un truc bizarre m'arrive, tout du moins bizarre pour moi.
Pourquoi :
fonctionne très bien, et :
me renvoi un [glow=yellow,2,300]Unable to parse the format string "%K %@ %@[/glow]
:)beta:
Un truc bizarre m'arrive, tout du moins bizarre pour moi.
Pourquoi :
predicate = [NSPredicate predicateWithFormat: <br /> @"%K BEGINSWITH %@",key,searchString];
fonctionne très bien, et :
predicate = [NSPredicate predicateWithFormat: <br /> @"%K %@ %@",key,comparateur,searchString];
me renvoi un [glow=yellow,2,300]Unable to parse the format string "%K %@ %@[/glow]
:)beta:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
cf a syntaxe des NSPredicates ici.
En particulier : En fait le "%@" dans les format strings des predicates est vraiment fait pour remplacer une variable, en particulier marquer le positionnement d'une chaà®ne (NSString)... mais qui est sensée être la chaà®ne à rechercher, et sera donc entourée de guillemets, et non pas n'importe quelle chaà®ne (comme le comparateur pour toi). Ou alors si c'est un objet que tu passes pour le %@, (genre dictionnaire, ou tableau...) et pas une simple NSString, ça va l'encoder comme il faut pour donner un predicat valide... (cf l'exemple dans la doc Apple, même page, quand ils parlent des "aggregate operations" et de l'opérateur "IN".
Ce %@ des "predicate format strings" n'est donc pas traité pareil que dans un stringWithFormat. Du coup le predicat résultat de ton predicateWithFormat (qui serait un truc genre [tt]macle "LIKE" "toto"[/tt], note les guillemets en trop autour du LIKE) n'a pas de sens.
Conclusion, il faut que tu crées d'abord ta "predicate format string" avec un stringWithFormat, puis que tu la passes à ton constructeur de NSPredicate ensuite :