我正在尝试在NSMutableArray中搜索字符串。我正在使用containsObject:当前但看起来这是区分大小写的。我需要搜索给定字符串的所有组合(trip)。任何想法都将不胜感激。
if ([self.theArray containsObject:trip]) {
}
答案 0 :(得分:10)
不那么难:
BOOL found = NO;
for (NSString* str in self.theArray) {
if ([str caseInsensitiveCompare:trip] == NSOrderedSame) {
found = YES;
break;
}
}
答案 1 :(得分:3)
为NSArray创建一个类别并在其中添加此功能。
- (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;
}
答案 2 :(得分:0)
块怎么样:
__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!");
}