如何使用UISearchBar搜索数组字符串中的第二个单词?

时间:2012-05-23 11:15:23

标签: iphone objective-c search uisearchbar

我必须使用UISearchBar搜索数组中的单词。例如,我在索引2的数组中有“Chicken Salad”字符串。现在如果想使用最后一个单词“Salad”搜索它,那么我该怎么办? 因为我正在使用这段代码并且它工作得很好但是如果你从第一个单词搜索。

(appDelegate.isAirlineSelection == YES) {
            for (int i = 0; i < [menuArray count]; i++) {
                if ([[[[menuArray objectAtIndex:i] itemName] uppercaseString] hasPrefix:search]||[[[[menuArray objectAtIndex:i] itemName] uppercaseString] hasSuffix:search]) {
                    [tableMenuArray addObject:[menuArray objectAtIndex:i]];
                    NSLog(@"Found");
                }
            }

请帮助我

2 个答案:

答案 0 :(得分:1)

尝试这种方式,它甚至会在单词之间进行搜索:

for(NSString *name in menuArray)        
{
    if ([name rangeOfString:search options:NSLiteralSearch|NSCaseInsensitiveSearch].location != NSNotFound)
        [tableMenuArray addObject:name];
            NSLog(@"Found");

}

答案 1 :(得分:0)

首先,您应该将您的数组名称分成两部分并创建两个数组,然后您可以轻松地将搜索栏用于第二个数组,并且可以找到确切的结果,您想要什么。

for (NSString *name in lastnames)
    {

            NSComparisonResult result = [name compare:searchText options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchText length])];
            if (result == NSOrderedSame)
            {
                [searchedNames addObject:name];
            }

    }