不区分大小写的 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];
}
我正在 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];
}