I'm using following NSPredicate for filtering,
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(firstName CONTAINS %@ ) OR (lastName CONTAINS %@ )OR (UserName CONTAINS %@ ) ", myText,myText,myText];
NSArray *filtered = [responseArray filteredArrayUsingPredicate:predicate];
It works fine, but it's case-sensitive. I need the filtering should be case insensitive.
I've tried,
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(ANY firstName CONTAINS %@ ) OR (ANY lastName CONTAINS %@ )OR (ANY UserName CONTAINS %@ ) ", myText,myText,myText];
But it throws the error
*** 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.'
I can't understand what it was mentioned in this answer. Can anyone suggest what should I change here in the above filtering?
Replace all CONTAINS
with CONTAINS[c]
. The "c" in square brackets means case insensitive. You can also use a "d" to make it diacritic insensitive. This is explained in the "Predicate Programming Guide".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With