从iphone中的可变数组中搜索子字符串

时间:2011-01-07 06:26:12

标签: iphone objective-c cocoa-touch nsmutablearray uisearchbar

如何从NSMutableArray搜索子字符串?

NSMutableArray 名称具有字符串值

searchText是一个从名称数组值中搜索的子字符串。

for (NSString *sTemp in names)
    {
        NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
        //NSLog(@"sTemp = %@, searchText = %@",sTemp,searchText);
        NSLog(@"%@",titleResultsRange.length);
        if (titleResultsRange.length > 0)
            [Items addObject:sTemp];
    }

2 个答案:

答案 0 :(得分:2)

你做得对。问题是什么? 您也可以这样做:

for (NSString *sTemp in names)
    {
        NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
        if (titleResultsRange.location != NSNotFound)
            [Items addObject:sTemp];
    }

答案 1 :(得分:1)

您还可以使用NSPredicate过滤您的数组,如下所示:

NSArray *items = [names filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self contains[cd] %@",searchText]];