NSPredicate – 针对多个条件的大小写不敏感的过滤

我正在使用以下NSPredicate进行过滤,

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(firstName CONTAINS %@ ) OR (lastName CONTAINS %@ )OR (UserName CONTAINS %@ ) ", myText,myText,myText]; NSArray *filtered = [responseArray filteredArrayUsingPredicate:predicate]; 

它工作正常,但是区分大小写。 我需要的过滤应该不区分大小写。

我试过了,

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ANY firstName CONTAINS %@ ) OR (ANY lastName CONTAINS %@ )OR (ANY UserName CONTAINS %@ ) ", myText,myText,myText]; 

但它会抛出错误

 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'The left hand side for an ALL or ANY operator must be either an NSArray or an NSSet.' 

我不明白这个答案中提到的是什么。 任何人都可以build议在上面的过滤中,我应该改变什么?

CONTAINS全部replace为CONTAINS[c] 。 方括号中的“c”表示不区分大小写。 您也可以使用“d”使其变音符不敏感。 这在“Predicate Programming Guide”中有解释。