2
我想知道是否有一種方法來構建一個謂詞並動態指定要使用哪個比較器?例如,我試過,但它崩潰:NSPredicate中的動態比較器
NSPredicate *validPredicate = [NSPredicate predicateWithFormat:@"%K %@ %@", NSStringFromSelector(@selector(expirationDate)), isValid ? @"<" : @">",[NSDate date]];
,但如果我硬編碼字符串中的比較它不會崩潰:
NSPredicate *validPredicate = [NSPredicate predicateWithFormat:@"%K < %@", NSStringFromSelector(@selector(expirationDate)), [NSDate date]];
難道還有比這樣做的最佳方式:
NSPredicate * validPredicate = nil;
if (isValid) {
validPredicate = [NSPredicate predicateWithFormat:@"%K > %@", NSStringFromSelector(@selector(expirationDate)), [NSDate date]];
} else {
validPredicate = [NSPredicate predicateWithFormat:@"%K < %@", NSStringFromSelector(@selector(expirationDate)), [NSDate date]];
}