不区分大小写的数组search

我正在尝试search一个string的NSMutableArray。 我正在使用containsObject:目前,但它看起来像是区分大小写。 我需要search给定的string(旅行)的所有组合。 任何想法将不胜感激。

if ([self.theArray containsObject:trip]) { 

}

并不难:

 BOOL found = NO; for (NSString* str in self.theArray) { if ([str caseInsensitiveCompare:trip] == NSOrderedSame) { found = YES; break; } } 

为NSArray创build一个类别并在其中添加该函数。

 - (BOOL)containsStringCaseInsensitive:(NSString *)key { key = [key lowercaseString]; for (int i = ([self count] - 1); i >= 0; i--) { NSObject * obj = [self objectAtIndex:i]; if ([obj isKindOfClass:[NSString class]]) { NSString * strInArray = [(NSString *)obj lowercaseString]; if ([key isEqualToString:strInArray]) { return YES; } } } return NO; } 

如何块:

 __block trip = @"blah"; if (NSNotFound!=[self.theArray indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { if (NSOrderedSame==[(NSString *)obj caseInsensitiveCompare:trip]) { stop=YES; return YES; } return NO; }]) { NSLog(@"It's a MATCH!"); }