Est-il possible de substituer des mots réservés, en particulier OR
et AND
, dans un predicateFormat
?+ [NSPredicate predicateWithFormat] remplacer les mots réservés
J'ai essayé:
NSString *andOr = (isAnd ? @"AND" : @"OR"); // isAnd is a BOOL variable
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"firstName == %@ %K lastName == %@",
user.firstName, andOr, user.lastName];
mais je me suis:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Unable to parse the format string "firstName == %@ %K lastName == %@"
J'ai essayé %s
(et %S
) au lieu de %K
mais nous avons eu la même exception.
Ma solution de travail pour l'instant est de créer le predicateFormat
séparément.
NSString *predicateFormat = [NSString stringWithFormat:
@"firstName == %%@ %@ lastName == %%@", andOr];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateFormat,
user.firstName, user.lastName];
Mais, je me demandais si cela pouvait se faire sans créer predicateFormat
séparément.