,這不是一個有效的謂詞格式字符串,這樣即使你最終生成它,您將無法將其轉換爲NSPredicate
這裏有你想要的東西,而不是:
NSDictionary *groupValuePairs = ....;
NSMutableArray *subpredicates = [NSMutableArray array];
for (NSString *group in groupValuePairs) {
NSArray *values = [groupValuePairs objectForKey:group];
NSPredicate *p = [NSPredicate predicateWithFormat:@"%K IN %@", group, values];
[subpredicates addObject:p];
}
NSPredicate *final = [NSCompoundPredicate andPredicateWithSubpredicates:subpredicates];
這不具有區分和音調符號不敏感,你原來是暗示。如果你真的需要這個,那麼你將需要更復雜一點:
NSDictionary *groupValuePairs = ....;
NSMutableArray *subpredicates = [NSMutableArray array];
for (NSString *group in groupValuePairs) {
NSArray *values = [groupValuePairs objectForKey:group];
NSMutableArray *groupSubpredicates = [NSMutableArray array];
for (NSString *value in values) {
NSPredicate *p = [NSPredicate predicateWithFormat:@"%K contains[cd] %@", group, value];
[groupSubpredicates addObject:p];
}
NSPredicate *p = [NSCompoundPredicate orPredicateWithSubpredicates:groupSubpredicates];
[subpredicates addObject:p];
}
NSPredicate *final = [NSCompoundPredicate andPredicateWithSubpredicates:subpredicates];
Wow ....有必要了解更多關於NSPredicate的...感謝! – user635064 2011-06-04 10:41:56