0

UISearchBarを使用して配列内の単語を検索する必要があります。たとえば、インデックス2の配列に「チキンサラダ」文字列があります。最後の単語「サラダ」を使用して検索する場合は、どうすればよいですか。しばらくの間、私はこのコードを使用していて、それはうまく機能していますが、最初の単語から検索すると。

(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

まず、配列名を 2 つの部分に分割して 2 つの配列を作成する必要があります。次に、2 番目の配列の検索バーを簡単に使用して、正確な結果を見つけることができます。

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 に答える