是否可以將保留字,特別是OR
和AND
替換爲predicateFormat
?+ [NSPredicate predicateWithFormat]替代保留字
我想:
NSString *andOr = (isAnd ? @"AND" : @"OR"); // isAnd is a BOOL variable
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"firstName == %@ %K lastName == %@",
user.firstName, andOr, user.lastName];
但我得到:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Unable to parse the format string "firstName == %@ %K lastName == %@"
我試圖%s
(也%S
),而不是%K
,但得到了同樣的異常。
我現在的工作解決方案是單獨創建predicateFormat
。
NSString *predicateFormat = [NSString stringWithFormat:
@"firstName == %%@ %@ lastName == %%@", andOr];
NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateFormat,
user.firstName, user.lastName];
但是,我想知道,這可以在不另行創建predicateFormat
來完成。