我需要从多个值数组构成一个谓词。所以我想我最初可与所有值的字符串,然后传递字符串在谓语使用,即从字符串创建NSPredicate
NSString* stringForPredicate = [[NSString alloc] init];
if (fromDate != nil) {
stringForPredicate = [stringForPredicate stringByAppendingFormat:@"(Date > %@ AND Date < %@)", fromDate, toDate];
}
有进一步的计算,我这样做,形成最终的谓语字符串。
现在,我想谓词使用这个字符串。我认为,像这样的工作:
NSPredicate* filterPredicate = [NSPredicate predicateWithFormat:@"%@",stringForPredicate];
但它不并抛出异常:
“无法解析格式字符串‘%@’”
有没有一种方法可以让我做这个工作?
谢谢,
嗯,我明白了,但上述声明只是我正在做的变量替换之一。事实上,我正在循环一个数组,并根据特定的条件,我将谓词字符串附加值。所以,我需要一种方法,让我可以使用字符串,或者继续向现有的谓词附加条件,在这种情况下,我可以直接在循环内部使用谓词,而不是使用字符串。有任何想法吗?谢谢。 – user542584 2011-05-06 10:08:58
@ user542584:是的。您可以使用* NSCompoundPredicate *。 – EmptyStack 2011-05-06 10:18:00
@ user542584:我编辑了我的答案。 – EmptyStack 2011-05-06 10:28:13