0

我必须使用 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");
                }
            }

请帮助我

4

2 回答 2

1

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

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

}
于 2012-05-23T11:21:57.117 回答
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];
            }

    }
于 2012-05-23T11:34:22.353 回答