iOS UISearchBar如何正确实施;键入时搜索";行为?
我正在使用iPad上的分割视图控制器实现搜索功能。它搜索从JSON对象获取的iOS UISearchBar如何正确实施;键入时搜索";行为?,ios,json,uitableview,uisearchbar,nspredicate,Ios,Json,Uitableview,Uisearchbar,Nspredicate,我正在使用iPad上的分割视图控制器实现搜索功能。它搜索从JSON对象获取的NSDictionary数组 我在表格视图的标题视图中添加了一个搜索栏,当用户在搜索栏中键入搜索查询时,我使用下面的代码用搜索结果更新表格 我很感兴趣我所做的是否是在iOS上实现“键入时搜索”行为的正确方法?如果我的JSON返回1000个结果,我会遇到性能问题吗?我是否需要实现一个搜索结果控制器,而不仅仅是将搜索栏放入表视图标题中 -(void)searchBar:(UISearchBar *)searchBar tex
NSDictionary
数组
我在表格视图的标题视图中添加了一个搜索栏,当用户在搜索栏中键入搜索查询时,我使用下面的代码用搜索结果更新表格
我很感兴趣我所做的是否是在iOS上实现“键入时搜索”行为的正确方法?如果我的JSON返回1000个结果,我会遇到性能问题吗?我是否需要实现一个搜索结果控制器,而不仅仅是将搜索栏放入表视图标题中
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[self doSearchWithString:searchText];
}
- (void)doSearchWithString:(NSString*)searchString
{
NSPredicate* predicate = [NSPredicate predicateWithBlock:^BOOL(NSDictionary *object, NSDictionary *bindings) {
//get the value from the dictionary (the name value)
NSString *name = [object objectForKey:@"name"];
if([[name lowercaseString] rangeOfString:[searchString lowercaseString]].location != NSNotFound) {
return YES;
}
return NO;
}];
//change the datasource and ask the table to refresh itself
self.searchResults = [self.dataSource filteredArrayUsingPredicate:predicate];
[self.tableView reloadData];
}
根据数据集的大小,您可能很难获得足够的核心数据性能 它可能值得预取,然后尝试二进制数组搜索。见: 否则,它可能需要自定义二进制索引,如有向无环字图。看看这个答案:
根据数据集的大小,您可能很难获得足够的核心数据性能 它可能值得预取,然后尝试二进制数组搜索。见: 否则,它可能需要自定义二进制索引,如有向无环字图。看看这个答案: