在我的应用中,我有3 NSMutableArray
个empJsonArray
searchArray
和nameArray
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
答案 0 :(得分:0)
问题解决了。
而不是在cell
cell.textLabel.text = [[searchArray objectAtIndex:indexPath.row]
我正在展示
cell.textLabel.text = [[sortedArray objectAtIndex:indexPath.row]objectForKey:@"Name"];