您可以首先通过以下操作在字典中选择正确的数组:
NSString *firstLetter = [searchString substringWithRange:(NSRange){0,1}];
NSArray *people = PersonsListSection[firstLetter];
然后你可以使用
NSPredicates
:
NSPredicate *namesBeginningWithKeyword = [NSPredicate predicateWithFormat:@"(name BEGINSWITH[cd] $letter)"];
NSArray *filteredPeople = [people filteredArrayUsingPredicate:[namesBeginningWithKeyword predicateWithSubstitutionVariables:@{@"letter": searchString}]]);
但是,如何在表视图的内容中反映这一点是另一个问题。
-
通常,您希望视图控制器成为UISearchBar的代理,并使用
â (void)searchBar:textDidChange:
委托方法。
-
在那里,您可以调用表视图
- reloadData
方法,因此它尝试重新计算其内容,调用其所有dataSource方法,如
- numberOfSectionsInTableView:
等等
-
在这些方法中,依次检查是否在搜索栏中输入了一些文本,并使用上面的提示返回正确的部分/单元格。