iOS搜索结果订单

时间:2012-07-18 01:45:52

标签: iphone objective-c ios xcode ipad

我有一个搜索数据表的UISearchBar。输入搜索后,结果将按如下顺序显示:

开始输入'ch ...' 疼痛 樱桃 3.选择

对我(以及我的应用程序)来说,'樱桃'和'选择'会在结果的顶部更有意义,因为'ch'而不是'ach'被输入。这是否可以以编程方式进行更改,还是仅仅是iOS搜索的工作方式?

1 个答案:

答案 0 :(得分:3)

您必须将搜索选项指定为 NSAnchoredSearch

NSRange searchRange = [sortedString rangeOfString:searchText options:NSAnchoredSearch];

下面列出的一些搜索方法

NSCaseInsensitiveSearch

NSLiteralSearch

<强> NSBackwardsSearch

NSAnchoredSearch

NSNumericSearch

NSDiacriticInsensitiveSearch

NSWidthInsensitiveSearch

NSForcedOrderingSearch

<强> NSRegularExpressionSearch

例如:

- (void)search {

    NSString *searchText = [searchBar.text lowercaseString];


    for (int index = 0; index < [availableCollectionArray count]; index++) {

        NSArray *tempArray = [availableCollectionArray objectAtIndex:index];

        for (int tempIndex = 0; tempIndex < [tempArray count] ; tempIndex++) {

            NSString *sortedString = [tempArray objectAtIndex:tempIndex];

            NSRange searchRange = [sortedString rangeOfString:searchText options:NSAnchoredSearch];

            if (searchRange.length > 0)
            {
                [sortedArray addObject: sortedString];  //add the string which starts from searchBar.text
            }       

        }   

    }

}