我有一个plist(一个字典数组的数组),正在读入一个NSArray,我正在使用它来填充一个表。这是一个人员列表,他们的工作地点,电话号码等。我添加了一个UISearchBar,并实现了textDidChange方法。NSDictionary搜索问题
当我按照人的姓氏搜索时,我在表格中看到过滤列表,但我认为我没有正确存储过滤结果。我正在使用一个NSMutable数组,但我失去了关键:值的配对。
有人可以请指出我在正确的方向吗?我最终想点击一个过滤的名称并推送到详细的视图控制器。我相信我的问题是我试图捕获NSMutableArray中的筛选结果,但我不确定。
我已经做了很多谷歌搜索,但似乎无法把它放在我的脑海。任何帮助表示赞赏。
此致 达林
这里是我使用加载的plist阵列。
-(NSArray *)content
{
if (!content){ {
content = [[NSArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ophonebook" ofType:@"plist"]];
NSSortDescriptor* nameSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Last" ascending:YES];
content= [content sortedArrayUsingDescriptors:[NSArray arrayWithObject:nameSortDescriptor]];
}
return content;
}
这里是方法的UISearchBar
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if (searchText.length == 0)
{
isFiltered= NO;
} else {
isFiltered= YES;
filteredPeople = [[NSMutableArray alloc]init];
for (NSDictionary *dict in content)
{
NSString *last = [dict objectForKey:@"Last"];
NSRange lastRange = [last rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (lastRange.location != NSNotFound)
{
[filteredPeople addObject: [dict objectForKey:@"Last"]];
}
}
}
[myTableView reloadData];
}
谢谢!它正在工作。我一直在这个问题上主演,并没有看到它。按照您的建议,现在转回去清理。 – Darin