我有一个NSMutableDictionary(PerosnsListSections)和一个类名Persons
的NSMutableDictionary:
人员类: @property(assign,nonatomic)NSInteger pid; @property(强,非原子)NSString * name;
现在我在UITableView中显示了PerosnsListSections,如图所示
我想要实现的是当搜索栏中的用户类型首先我必须过滤第一个字母的部分然后过滤该部分下的名称。
抱歉我的英语不好(:
答案 0 :(得分:1)
您可以先执行以下操作在字典中选择正确的数组:
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}]]);
你如何将这一点反映在tableview的内容中的问题是另一个问题。
– (void)searchBar:textDidChange:
委托方法对更改作出反应。 - reloadData
方法,以便尝试重新计算其内容,调用其所有的dataSource方法,如- numberOfSectionsInTableView:
等。