不区分大小写的 SearchBar Xcode

Case insensitive SearchBar Xcode

我正在 Xcode Objective-C 开发应用程序。该应用程序有一个带有餐厅的 TableView。我的问题是,当我使用 SearchBar 时,过滤器区分大小写,我想进行不区分大小写的搜索。 我知道我必须更改我的 searchBar textDidChange 方法,我正在寻求帮助,但我不知道如何更改我的情况。有人能帮我吗?非常感谢。

这是我的searchBar textDidChange方法:

-(void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {

    if (searchText.length == 0) {
        //Set our boolean flag
        isFiltered = NO;
    } else {
        //Set our boolean flag
        isFiltered = YES;
    }
    //Alloc and init our filteredData
    filteredRest = [[NSMutableArray alloc] init];

    for (Restaurant *item in originData) {
        if ([item.title containsString:searchText]) {
            [filteredRest addObject:item];
        }
    }

    //Reload our table view
    [self.tableView reloadData];
}

谢谢。

更改此行

if ([item.title containsString:searchText]) {
    [filteredRest addObject:item];
}

有了这个

if ([[item.title lowercaseString]containsString:[searchText lowercaseString]]) {
    [filteredRest addObject:item];
}

这是您更新代码的方式:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {

    if (searchText.length == 0) {
        //Set our boolean flag
        isFiltered = NO;
    } else {
        //Set our boolean flag
        isFiltered = YES;
    }
    //Alloc and init our filteredData
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title CONTAINS[cd] %@", searchText];
    filteredRest = [originData filteredArrayUsingPredicate:predicate]

    //Reload our table view
    [self.tableView reloadData];
}

又一个最佳方案。

if (!([item.title rangeOfString:searchText options:NSCaseInsensitiveSearch].location == NSNotFound))
    {
       [filteredRest addObject:item];
    }