私のアプリは、ユーザーがUISearchBarに検索結果を入力した直後に、検索結果を解析しています。すべてが正常に動作します。しかし、今は全文を検索したいと思います。結果は私のNSMutableArrayにありますが、表示されません。問題はこのコードだと思います:
NSRange nameRange = [SDPE.title rangeOfString:self.searchBar.text options:NSCaseInsensitiveSearch];
私に何ができる?
私のアプリは、ユーザーがUISearchBarに検索結果を入力した直後に、検索結果を解析しています。すべてが正常に動作します。しかし、今は全文を検索したいと思います。結果は私のNSMutableArrayにありますが、表示されません。問題はこのコードだと思います:
NSRange nameRange = [SDPE.title rangeOfString:self.searchBar.text options:NSCaseInsensitiveSearch];
私に何ができる?
これをチェックして :
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
searchBar.showsCancelButton = YES;
if([self.filteredListContent count]>0)
{
[self.filteredListContent removeAllObjects]; // First clear the filtered array.
}
for (int cnt = 0; cnt< [self.listContent count];cnt++)
{
NSRange range = [[[self.listContent objectAtIndex:cnt]lowercaseString] rangeOfString :[searchText lowercaseString]];
if(range.length>0)
{
[self.filteredListContent addObject:[self.listContent objectAtIndex:cnt]];
}
self.blSearchBarClicked = TRUE;
[self.tbViewSearch reloadData];
}
}
ジャック・ローレンスの良いアドバイスのおかげで、私は完璧な答えを見つけました:
- (void)filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope
{
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF contains[cd] %@",
searchText];
searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}
ソース: http: //www.appcoda.com/how-to-add-search-bar-uitableview/