UISearchBar在显示搜索结果时出现问题

时间:2012-09-19 08:56:07

标签: ios uitableview uisearchbar nssortdescriptor

在我的应用中,我有3 NSMutableArrayempJsonArray searchArraynameArray

empJsonArray使用JSON填充。  来自nameArray的{​​{1}}填充了valueForKey:@"Name"empJsonArray最初填充的内容为searchArray

数据显示在empJsonArray

现在我使用UITableView搜索我的UISearchBar并显示相关数据。 UITableView工作正常,但显示搜索数据时会出现问题。 假设当我搜索“T”时,我有两个包含字母“T”的名称UISearchBar显示2个项目但是形成UITableView的顶部(即索引0和1)而不是包含“ T”。

我也在使用nameArray

这是代码: -

NSSortDescriptor

搜索方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MYCell"];
if (!cell) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MYCell"];
}
sorter = [[NSSortDescriptor alloc]initWithKey:@"Name" ascending:YES selector:@selector(caseInsensitiveCompare:)];
sortedArray = [self.empJsonArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sorter]];
cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row]objectForKey:@"Name"];
nameArray = [[NSMutableArray alloc]initWithArray:[sortedArray valueForKey:@"Name"]];

return cell;

}

你可以在这里看到截图 1。Before search 2。After Search

1 个答案:

答案 0 :(得分:0)

问题解决了。

而不是在cell

中显示搜索结果
cell.textLabel.text = [[searchArray objectAtIndex:indexPath.row]

我正在展示

cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row]objectForKey:@"Name"];